Svick'in cevabı iyi ama birkaç ekstra puan daha ekleyeceğimi düşündüm.
İlk olarak, paragraf kusurlu. İşaretçi türleri nesneden miras almaz. Derleme zamanında arabirim türleri veya tür parametre türleri olarak bilinen değerler, çalışma zamanında geçersiz başvurular veya nesneden devralınan bir şeyin iyi niyetli örnekleri olacaktır, ancak beni her zaman bu türlerin " nesneden devralma "; miras, ata üyelerinin üyelerinin soydan gelen üyeleridir, ancak normalde "ToString" i IEnumerable üyesi olarak düşünmezsiniz. Bunu IEnumerable uygulayan şeyin bir üyesi olarak düşünüyorsunuz .
Paragraf da kusurludur, çünkü bu özellikte "ilkel tip" görünen ve tanımsız görünen tek yerdir. Bu nedenle hem gereksiz hem de kafa karıştırıcıdır ve kaldırılmalıdır.
Bu paragrafın bir süre düzeltilmesini istedim. Bir dahaki sefere Mads'i gördüğümde ona hatırlatacağım.
Özel sorunuza cevap vermek için: svick elbette doğrudur, ancak belirli bir örneği görmek faydalıdır. Dediğinde:
struct ColorfulInt
{
int value;
Color color;
...
}
ve diyelim ki bir dizi oluşturursunuz:
ColorfulInt[] x = new ColorFulInt[100];
Sonra bu 100 inç ve 100 Renk için depolama dizinin kendisine gider . Bunun yerine ColorfulInt bir sınıf olsaydı, dizi ColorfulInt için 100 referans içerirdi, her birinin ayrı ayrı tahsis edilmesi gerekirdi. Bu yüz öğeyi ayrı ayrı ayırmak, hem zaman hem de alan içinde depolamayı dizinin kendisine ayırmaktan çok daha az verimlidir.