Sto scrivendo un piccolo codice per ulteriori informazioni su property
e static property
. Come questi:proprietà statiche in C# 6
class UserIdentity
{
public static IDictionary<string, DateTime> OnlineUsers { get; set; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
o
class UserIdentity
{
public IDictionary<string, DateTime> OnlineUsers { get; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
Da quando ho cambiato in:
class UserIdentity
{
public static IDictionary<string, DateTime> OnlineUsers { get; }
public UserIdentity()
{
OnlineUsers = new Dictionary<string, DateTime>();
}
}
mi ha dato un messaggio di errore:
del proprietario o indicizzatore 'UserIdentity.OnlineUsers 'non può essere assegnato a - è letto solo
Sapevo che la proprietà OnlineUsers
era read only
, ma in C# 6, posso assegnarla tramite costruttore. Quindi, cosa mi sto perdendo?
Il problema sarebbe anche accadere in C# 1.0 in poi (farmaci generici a parte), solo con sintassi diversa per dichiarare le onlineUsers –
@ MartinCapodici: Quindi dovrebbe essere un campo e non una proprietà, perché non si può avere una "proprietà di sola lettura che si può anche assegnare a", che sono stati aggiunti in C# 6. –
Matti, è vero che ero pensando a un campo avvolto con una proprietà per ottenere lo stesso effetto. –