W kodzie źródłowym Entity Framework (link) znalazłem ten wiersz:Co oznacza [param: NotNull] w C#?
public virtual IRelationalTransaction Transaction
{ get; [param: NotNull] protected set; }
[param: NotNull]
część wygląda bardzo dziwne dla mnie. Każdy pomysł, jaki rodzaj składni C# jest to? Jestem zaznajomiony z atrybutami i paramem, ale nie z tą kombinacją.
Definicja NotNull to:
[AttributeUsage(
AttributeTargets.Method | AttributeTargets.Parameter |
AttributeTargets.Property | AttributeTargets.Delegate |
AttributeTargets.Field)]
internal sealed class NotNullAttribute : Attribute
{
}
Jakie spodziewałem się być używane tylko jako [NotNull]
ale co param
tu robi?
Ustawodawca nie zwraca wartości. co masz na myśli przez "setter zwraca zero" w odpowiedzi na pytanie: –
@HakamFostok stroingly, zwraca 'Void', i możesz oznaczyć dowolną metodę z' NotNull', nawet jeśli zwraca "nic" (void). – Backs
Czy generowana metoda ustawiająca nie jest "chroniona"? – chi