2010-11-22 14 views
1

Visual Studio 2008'de Object Browser aracılığıyla mscorlib.dll dosyasına bakıldığında, IDE, Int64 (diğer veri türlerinin yanı sıra) temel bir ValueType türüne sahip olduğunu gösterir..NET C#: System.Int64 bir temel tür System.ValueType var mı?

C# 'da, yapıların (Int64'in) nesne mirasını desteklemediğinin farkındayım. Hatta bir sınıfın System.Int64 özelliğini bildirdiğim bir derlemenin metadatasını kontrol ettim ve Int64'ün herhangi bir sınıfı genişletme konusunda hiçbir belirti yoktu. Yapılar arayüzleri uzatabilir ve bunun farkındayım.

Int64 yapısının neden bir BaseType ValueType gösterdiği konusunda kafam karıştı.

Birisi lütfen açıklayabilir misiniz?

d alt text

cevap

3

Tüm değer türleri örtülü olarak System.ValueType devralır.

+0

Yapılar, System.Object dışındaki bir şeyden miras alınamayacağını düşündüm? (http://msdn.microsoft.com/en-us/library/ah19swz4(VS.71).aspx) – contactmatt

+0

@contactmatt: Burada kabul edilen cevaba bir göz atın: http://stackoverflow.com/questions/1682231/nasıl-valuetypes-türetme-from-object-referencetype-ve-hala-valuetypes/1682604 # 1682604 – LukeH

+0

@LukeH - Yani yukarıdaki MSDN belgelerini yanlış? Yukarıdaki MSDN bağlantısından alındığı gibi: "Sınıflar için olduğu gibi yapıların kalıtımı yoktur. Bir yapı başka bir yapıdan veya sınıftan miras alınamaz ve bir sınıfın tabanı olamaz. Ancak, yapılar, temel sınıftan miras alınır. Nesne." – contactmatt

İlgili konular