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

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008