嘿,我是C#的新手,我写了这段代码:
static void Main()
{
Dictionary<int, HashSet<string>> dict1 = new Dictionary<int, HashSet<string>>();
Dictionary<int, HashSet<string>> dict2 = new Dictionary<int, HashSet<string>>();
// ...
CompareDicts(dict1, dict2);
}
private static void CompareDicts(Dictionary<int, HashSet<string>> dict1, Dictionary<int, HashSet<string>> dict2)
{
// Blah blah
}
有没有办法让这段代码更具可读性(更短)?
答案 0 :(得分:12)
using AliasName = System.Collections.Generic.Dictionary<int, System.Collections.Generic.HashSet<string>>;
namespace Progam1
{
class Program
{
static void Main()
{
var dict1 = new AliasName();
var dict2 = new AliasName();
CompareDicts(dict1, dict2);
}
private static void CompareDicts(AliasName dict1, AliasName dict2)
{
// Blah blah
}
}
}
但只有在明确包含哪种数据时才使用var
:
例如, 这很好:
var abc = new List<int>();
这很糟糕:
var abc = SomeFunc();
...因为您不知道立即(在阅读代码时)返回什么类型的数据SomeFunc
。
您必须将鼠标移到var
以查看类型(在Visual Studio中)。
答案 1 :(得分:0)
有时,当您处理具有大量参数和/或具有长类型名称的参数的方法时,将它们格式化为更多,更短的行可能会有所帮助:
private static void CompareDicts(
Dictionary<int, HashSet<string>> dict1,
Dictionary<int, HashSet<string>> dict2
)
{
// Blah blah
}
这对于解决类型名称的长度没有任何作用,从技术上讲,你的代码现在没有任何缩短,但我认为可读性大大提高了。对于这种特殊方法,我可能会在横向和纵向屏幕空间之间取得平衡:
private static void CompareDicts(
Dictionary<int, HashSet<string>> dict1, Dictionary<int, HashSet<string>> dict2
)
{
// Blah blah
}