私はproperty
とstatic property
についてより理解するために小さなコードを書いています。これらのように:私はそれを変更したのでC#6の静的プロパティ
class UserIdentity
{
public static IDictionary<string, DateTime> OnlineUsers { get; set; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
または
class UserIdentity
{
public IDictionary<string, DateTime> OnlineUsers { get; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
:
プロパティまたはインデクサ「UserIdentity.OnlineUsers:
class UserIdentity { public static IDictionary<string, DateTime> OnlineUsers { get; } public UserIdentity() { OnlineUsers = new Dictionary<string, DateTime>(); } }
は、それは私にエラーメッセージを与えました'を割り当てることはできません - それは読み取り専用です
OnlineUsers
はread only
でしたが、C#6ではコンストラクタで割り当てることができました。それで、私は何が欠けていますか?
問題もOnlineUsers –
を宣言するためだけの別の構文で、以降はC#1.0(脇ジェネリック)に起こるでしょう@ MartinCapodici:C#6で追加された「読み込み専用のプロパティ」を持つことができないため、フィールドでなくプロパティでなければなりません。 –
Matti、それは本当です同じ効果を達成するためにプロパティでラップされたフィールドを考える。 –