2016-04-08 20 views
0

Bunu izleyen yapı StructA StructB StructC StructD tüm normal bir sınıftır [StructLayout(LayoutKind.Sequential, Pack = 1)] ve KiteClass ile yapılardırC# Yapıdaki büyüklüğü elde etmek için bir yapı içinde bir sözlük içinde nasıl bildirimde bulunabilirim?

[StructLayout(LayoutKind.Sequential, Pack = 1)] 
public struct CombinedDS 
{ 
    public HeaderStruct Header; 
    public StructA a; 
    public StructB b; 
    public StructC c; 
    public StructD d; 
    public Dictionary<string, KiteClass> KiteObjDict; 
} 

var. yönetilmeyen bir yapı olarak konmasını olamaz Tipi 'MyApp.CombinedDS';:

Bu ArgumentException alıyorum anlamlı bir boyut veya ofset hesaplanabilir zaman

int varsize = Marshal.SizeOf(typeof(CombinedDS));

kullanarak yapı CombinedDS boyutunu almaya çalışıyorum ben bunun arkasında teorik sebebini bilmek istiyorum ve ayrıca doğru metodoloji veya herhangi bir öneri elde etmek istediğim.

cevap

0

A Sözlük, herhangi bir sayıda öğeden oluşan bir koleksiyondur. Öğeler eklendiğinde/kaldırıldığında çalışma zamanında değişeceğinden, bu boyut derleyici tarafından bilinmemektedir.

Gerçekten neyi başarmaya çalıştığınızı belirtmediği için, öneri istiyorsanız bilgi sorusuna bilgi eklemek isteyebilirsiniz.

İlgili konular