0

C#で次の構造があるとします

public struct User
{
    public string name;
    public int ID;
    public bool isAlive;
}

この構造体にすべての値を割り当てたいと思います。私がこれを行う方法を知っている唯一の方法は、

User Bill;
Bill.ID = 1;
Bill.name = "Bill";
Bill.isAlive = false;

しかし、これを行うより速い方法はありますか?何かのようなもの

User Bill = {
  ID : 1,
  name : "Bill",
  isAlive : false
};
4

5 に答える 5

3

はい。

User bill = new User{
  ID = 1,
  name = "Bill",
  isAlive = false
};
于 2013-10-23T22:37:49.360 に答える
1

構造体は (値の型であるという点だけで) クラスとまったく同じように動作するため、たとえば、コンストラクターやメソッドを使用できます。

于 2013-10-23T22:38:08.103 に答える
0

その構造を持っていないとします..匿名型を使用できます:

var Bill=new {
    ID=1,
    name="Bill",
    isAlive=false
};

var Gates=new {
    ID=2,
    name="Gates",
    isAlive=true
};

備考に注意してください:

アセンブリ内の 2 つ以上の匿名オブジェクト初期化子が、同じ順序で同じ名前と型を持つ一連のプロパティを指定する場合、コンパイラはそれらのオブジェクトを同じ型のインスタンスとして扱います。これらは、コンパイラによって生成された同じ型情報を共有します。

構造体は不変ですが、匿名型のインスタンスは割り当てられると読み取り専用になります。

匿名型は、最初に型を明示的に定義しなくても、一連の読み取り専用プロパティを 1 つのオブジェクトにカプセル化する便利な方法を提供します。型名はコンパイラによって生成され、ソース コード レベルでは使用できません。各プロパティの型は、コンパイラによって推測されます。

したがって、匿名型を使用して両方の利点を得ることができました。

于 2013-10-23T23:11:08.197 に答える