2

ちょっと私は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
}

このコードを読みやすくする (短くする) 方法はありますか?

4

2 に答える 2

14

エイリアスvarを使用する

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();

... (コードを読んでいる間)どのタイプのデータが返されるかがすぐにわからないためです。(Visual Studio で) タイプを表示するには、SomeFuncマウスを上に移動する必要があります。var

于 2013-11-01T23:21:49.727 に答える
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
}
于 2013-11-02T02:10:45.273 に答える