Aracılığıyla paylaş


Değer türleri için sürüm sorunlarını yerel türleri içinde iç içe (C++/ CLI)

İstemci derlemesi oluşturmak için kullanılan işaretli (tanımlayıcı adlı) derleme bileşeni düşünün.Bu bileşen istemcide yerel bileşim, sınıf ya da dizi üyesi için tür olarak kullanılan bir değer türü tutar. Bileşenin sonraki sürümleri değer türünün boyutunu veya düzenini değiştirirse, istemci yeniden derlenmelidir.

sn.exe (sn -k mykey.snk) ile anahtar dosya oluşturun.

Örnek

Örnek bir bileşen aşağıda verilmektedir:

// nested_value_types.cpp
// compile with: /clr /LD
using namespace System::Reflection;
[assembly:AssemblyVersion("1.0.0.*"), 
assembly:AssemblyKeyFile("mykey.snk")];

public value struct S {
   int i;
   void Test() {
      System::Console::WriteLine("S.i = {0}", i);
   }
};

Bir istemci örneği:

// nested_value_types_2.cpp
// compile with: /clr
#using <nested_value_types.dll>

struct S2 {
   S MyS1, MyS2;
};

int main() {
   S2 MyS2a, MyS2b;
   MyS2a.MyS1.i = 5;
   MyS2a.MyS2.i = 6;
   MyS2b.MyS1.i = 10;
   MyS2b.MyS2.i = 11;

   MyS2a.MyS1.Test();
   MyS2a.MyS2.Test();
   MyS2b.MyS1.Test();
   MyS2b.MyS2.Test();
}

Çıktı

S.i = 5
S.i = 6
S.i = 10
S.i = 11

tbc13stx.collapse_all(tr-tr,VS.110).gifComments

Ancak, nested_value_types.cpp'de struct S'e başka bir üye (örneğin, double d;) ekleyip, istemciyi tekrar derlemeden bileşeni tekrar derlerseniz, sonuç işlenmeyen özel durum (System.IO.FileLoadException türünde) olacaktır.

Ayrıca bkz.

Diğer Kaynaklar

Yönetilen türleri (C++/ CLI)