Neden'içeren t C# arabirimleri alanlar?
Örneğin, ICar
Bir Arayüz istiyorum ve tüm uygulamaları alanı içerir varsayalım Year
. Bu her uygulama ayrı ayrı Year
bildirmek zorunda olduğu anlamına mı geliyor? Sadece arayüzü bu tanımlamak için daha iyi olmaz mı?
CEVAP
Diğer cevapların çoğunu anlamsal düzeyde doğru olsa da, ilginç bir de uygulama ayrıntıları seviyesinden sorular bu tür bir yaklaşım buluyorum.
Bir arabirim bir koleksiyon olarak düşünülebiliryuvalarıiçeren ., ^em>yöntemleri. Bir sınıf bir arabirim uygulayan, sınıf, gerekli tüm yuvaları doldurmak için nasıl bir çalışma zamanı anlatmak için gereklidir. Derken
interface IFoo { void M(); }
class Foo : IFoo { public void M() { ... } }
sınıfı "bana bir örneğini oluşturduğunuzda, Foo başvurusu şeyler söylüyor.İFoo için yuvaya M.M.
Bir arama yaptığınızda o zaman:
IFoo ifoo = new Foo();
ifoo.M();
derleyici "yöntemi İFoo için.yuvasına ne nesne sor diyor kod oluşturur M, ve bu yöntemi çağırın.
Eğer bir arayüz bir toplama yuvası içeren yöntemler, daha sonra bazı bu yuva da içeren get ve set yöntemleri bir özellik, get ve set yöntemleri bir dizin, Ekle ve kaldır yöntemleri bir olay. Amabir alana bir yöntem değildir. "Sonra "" alanı için referans bir konuma sahip. bilgilendirebilirsin bir alan ile ilgili "yuvası yok Ve bu nedenle, arabirimleri, yöntemleri, özellikleri, dizin oluşturucular ve olaylar, ancak alanları tanımlayabilirsiniz.
Neden Arabirimleri, ama statik alanlar...
Neden belirli Unicode karakterler içer...
Neden bu tür özel özel alanlar, örnek ...
Neden yerel değişkenleri başlatma, ama...
Neden sadece C bir dizi içeren bir yap...