C#で不変な型があります。それらは基本的にすべてちょうどです。不変型のコンストラクタの略語
public class Class : IInterface
{
public Class(IInterface2 prop1, IInterface2 prop2)
{
Property1 = prop1;
Property2 = prop2;
}
public IInterface2 Property1 { get; }
public IInterface2 Property2 { get; }
}
コンストラクタ内の2つのプロパティセットが混在したバグが見つかりました。
このコンストラクタを省略または生成できるC#の不変型の略語はありますか?
このよう
var f = new Class { Property1 = null, Property2 = null };
として残念ながら
public class Class : IInterface
{
public readonly IInterface2 Property1;
public readonly IInterface2 Property2;
}
、私はそれを使用しようとすると、コンパイラは、にもかかわらず、読み取り専用のフィールドは、コンストラクタや変数の初期化子を除いて設定することができないと言って、私に叫びますそれは明らかに恐ろしい変数初期化子であるという事実。
.NETのコンパイラにバグがありますか? –
さて、私は、このような方法では読み取り専用フィールドを設定することはできないことを仕様上見落としていると推測します。 – Puppy
コンパイルエラーが表示されますか? C#6以前のバージョンを使用していますか? –