4

私は最近、かなりの量のコードを VB から C# に変換していますが、VB では省略形を使用して新しい obj を開始できることに気付きました。これは C# で可能ですか、それともバッキング フィールドを使用する必要がありますか。

Public Property MyList As New List(Of String)

C# に相当するものは次のようです。

private List<String> _myList = new List<string>();
public List<String> MyList
{
    get { return _myList; }
    set { _myList = value; }
}

注* ショートカット コマンド「propfull」を使用すると、これを書き出す手間が大幅に軽減されます。

4

3 に答える 3

8

C#と同等?

C#auto-implemented propertiesは、バッキング フィールドを必要としないが、このプロパティに値を自動的に割り当てないものもサポートしています。

public List<string> MyList { get; set; }

コンパイラは、対応するバッキング フィールドを発行します。getter と setter に異なるアクセス修飾子を指定することもできます。

public List<string> MyList { get; private set; }

この自動プロパティを使用して同時にプロパティをインスタンス化する場合は、できませんが、クラスのコンストラクターで実行できます。

public class MyClass
{
    public MyClass()
    {
        this.MyList = new List<string>();
    }

    public List<string> MyList { get; set; }
}
于 2013-05-15T15:44:28.110 に答える