如何缩短类型名称?

时间:2013-11-01 23:20:26

标签: c# .net

嘿,我是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
}

有没有办法让这段代码更具可读性(更短)?

2 个答案:

答案 0 :(得分:12)

使用类型aliasvar

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
}