SORU
11 EYLÜL 2015, Cuma


Nedir [param: NotNull] yani C#?

Varlık Çerçevesi kaynak kodu (link) bu satırı buldum:

public virtual IRelationalTransaction Transaction 
{ get; [param: NotNull] protected set; }

[param: NotNull] kısmı benim için çok garip görünüyor. Herhangi bir fikir tür# sözdizimi C Bu nedir? Öznitelikleri aşina ama bu arada param yok benim.

NotNull tanımı bu

[AttributeUsage(
    AttributeTargets.Method | AttributeTargets.Parameter |
    AttributeTargets.Property | AttributeTargets.Delegate |
    AttributeTargets.Field)]
internal sealed class NotNullAttribute : Attribute
{
}

Ama param burada ne işi var? sadece [NotNull] olarak kullanılmak üzere bekliyordum ki

CEVAP
11 EYLÜL 2015, Cuma


NotNull ile yöntem işaretlediğinizde yöntem döndürür null nesne anlamına gelir:

[NotNull]
public object Get()
{
    return null; //error
}

Aynı ayarlayıcı döndürür null yapar ayarlayıcı işaretlediğinizde (çünkü .net ve yöntemleri ayarlamak) özellikleri dönüştürür.

public virtual IRelationalTransaction Transaction { get; [NotNull] protected set; }

Eşittir:

[NotNull] 
public virtual void set_Transaction(IRelationalTransaction value) { ... }

Gelin param: eklemek gerekiyor, "yani belirleyici parametre null-set yöntemi sonucu değil":

public virtual IRelationalTransaction Transaction { get; [param: NotNull] protected set; }

Eşittir:

public virtual void set_Transaction([NotNull] IRelationalTransaction value) { ... }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C#

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • mobilenet.cz

    mobilenet.cz

    26 NİSAN 2008
  • thewinekone

    thewinekone

    17 Aralık 2005