SORU
9 ŞUBAT 2009, PAZARTESİ


C# ve hakem, neden şeker?özellik parametre

Ben C çalışırken bu hata iletisi aktı#

Bir özellik veya dizin oluşturucu bir out veya ref parametresi olarak geçirilen olmayabilir

Ben bilinen ne neden oldu bu ve hızlı çözüm oluşturma bir yerel değişken doğru yazın, arama işlevi ile olarak out/ref parametre ve sonra atama geri özelliği:

RefFn(ref obj.prop);

dönüşüyor

{
    var t = obj.prop;
    RefFn(ref t);
    obj.prop = t;
}

Bu özelliği desteklemez. eğer başarısız olacağını açıkça ve mevcut bağlamı ayarlayın.

Neden C değil# benim için bunu yapar mı?


Bu sorunlara neden olabilir aklıma tek durumlar şunlardır:

  • iş parçacığı
  • özel durumlar

Diş için olan dönüşüm başına yazdığında etkiler (işlev çağrısında işlev çağrısı sonra vs), ama ben oldukça güveniyor kırıldığında küçük sempati alacağı herhangi bir kod şüpheli.

Özel durumlar için endişe olurdu; eğer işlevi daha atar ref çeşitli parametreler birine atarsa ne olur? Herhangi önemsiz bir çözüm parametreleri birkaç tane olması lazım ve biraz olmamalıdır zaman atandığı ya da bir kaçına neden olacaktır. Yine bu dilin kullanımı desteklenen olacağını sanmıyorum.


Not: bu hata iletileri oluşturulur neden mekaniğini anlıyorum. Neden mantığı C arıyorum ne# otomatik olarak önemsiz geçici çözümü yok.

CEVAP
9 ŞUBAT 2009, PAZARTESİ


Geçen olduğun içinsonuçgerçekten bir yöntem çağrısı sonucu, dizin,. Yok garanti dizin oluşturucu özelliği de olan bir pasör ve geçen tarafından ilan no yol açacak bir sahte güvenlik geliştirme Bölümü ne zaman sanıyor ki onun malı olacak set vermeden belirleyici olmak denir.

Bir daha teknik düzeyde, ref ve out pass bellek Adres nesne geçti, ve bir dizi özellik, aramalısın ayarlayıcı, yani orada hiçbir garanti bu özelliği olurdu aslında değişti özellikle mülkiyet türü değişmez. ref ve out yokayarlayınyöntemin dönüş değeri üzerine, nesnenin kendisi için gerçek bellek referans geçerler.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007