SORU
19 Mart 2010, Cuma


-Sadece okuma otomatik olarak uygulanan bir özellik mümkün mü?

Evet, bu mümkün olduğunu konuşuyor MSDN bir konu buldum.

Bu deyimi break gibi görünen bir test yaptım:

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Foo f = new Foo("1");
            Console.WriteLine(f.Bar); // prints 1
            f.Test("2");
            Console.WriteLine(f.Bar);// successfully prints 2
        }
    }

    class Foo
    {
        public Foo(string b)
        {
            this.Bar = b;
        }

        public string Bar { get; private set; }

        public void Test(string b)
        {
            // this would be impossible for readonly field!
            // next error would be occur: CS0191 or CS0191
            // A readonly field cannot be assigned to (except in a constructor or a variable initializer)
            this.Bar = b; 
        }
    }
}

Nerede hata yapıyorum?

CEVAP
19 Mart 2010, Cuma


Cevap aşağıda 2010 yılında yazıldı. # 6 (2015 yılında piyasaya sürülecek) Colabilirsalt okunur otomatik olarak uygulanan özellikler: yazma

// This can only be assigned to in a constructor
public int Foo { get; }

Kesinlikle haklısın. Düzgün okuma-sadece otomatik olarak uygulanan özellikler şu anda imkansız. Pasör Özel yapım aynı şey, bazı kitaplar ve MSDN ki:) ne olursa olsun değil

Eğer dünyayı yöneten, bu durum olmaz. Haziran ayında NDC 2010 dil tasarımcıları (lütfen gel!) bazı gördüğümde Onlar kabul edene kadar ikna, ikna rüşvet ve genellikle sizi bunalttığım için denemek istiyorum. Sadece bir tanesiinceldiözelliği, tüm sonra.

Bu Microsoft Knowledge Base makalesi bakarak, metnin kendisini okumak-sadece otomatik bir özellik oluşturur böyle bir şey yok. Değişmez bir tip oluştururkullanarakotomatik bir özellik, ve bu doğru. Sadece sorunlu bit yorumlar söylüyor

// Read-only properties.

... kesinlikle yanlış olan. Çerçeve bizimle aynı fikirde:

var prop = typeof(Contact).GetProperty("Name");
Console.WriteLine(prop.CanWrite); // Prints True

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • KliptOut KwazeeKilla

    KliptOut Kwa

    24 ŞUBAT 2010
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012