Piszę mały kod, aby lepiej zrozumieć o property
i static property
. Takie jak:Właściwość statyczna w C# 6
class UserIdentity
{
public static IDictionary<string, DateTime> OnlineUsers { get; set; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
lub
class UserIdentity
{
public IDictionary<string, DateTime> OnlineUsers { get; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
Odkąd zmienił go do:
class UserIdentity
{
public static IDictionary<string, DateTime> OnlineUsers { get; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
dał mi komunikat o błędzie:
obiekt lub podziałowe „UserIdentity.OnlineUsers "nie można przypisać do - jest to tylko do odczytu
Znałem właściwość OnlineUsers
był read only
, ale w C# 6, mogę przypisać go przez konstruktora. Więc, czego mi brakuje?
Problemem będzie też zdarzyć w C# 1.0 roku (generycznych na bok), tylko z innej składni do deklarowania OnlineUsers –
@ MartinCapodici: To musiałoby być pole, a nie własność, ponieważ nie mógłbyś mieć "tylko do odczytu własności, do której możesz również przypisać", które zostały dodane w C# 6. –
Matti, to prawda, że byłem myślenie o polu owiniętym właściwością, aby osiągnąć ten sam efekt. –