Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Jenis Objek daripada Perwakilan Rentetan dalam C#?
Dalam C#, rentetan yang mengandungi nama jenis boleh ditukar kepada objek Jenis yang sepadan. Walau bagaimanapun, kaedah yang digunakan untuk penukaran ini bergantung pada sama ada jenis ditakrifkan dalam perhimpunan yang sama dengan kod panggilan, atau dalam pemasangan yang berbeza.
Type.GetType(string)
Jika jenis ditakrifkan dalam perhimpunan yang sama, anda boleh menggunakan kaedah Type.GetType(string)
dan memberikan nama jenis yang layak sepenuhnya sebagai rentetan. Contohnya, untuk mendapatkan int
jenis data Type
, anda akan menggunakan:
<code class="language-csharp">Type.GetType("System.Int32");</code>
Assembly.GetType(string)
Jika jenis ditakrifkan dalam pemasangan yang berbeza, anda juga perlu memberikan nama pemasangan. Ini boleh dicapai menggunakan kaedah Assembly.GetType(string)
. Mula-mula, dapatkan rujukan kepada perhimpunan, kemudian gunakan rujukan itu untuk mendapatkan Type
:
<code class="language-csharp">Assembly asm = typeof(SomeKnownType).Assembly; Type type = asm.GetType("Namespace.MyClass");</code>
Pastikan anda memasukkan ruang nama jenis dalam rentetan yang disediakan untuk Type.GetType()
atau Assembly.GetType()
. Selain itu, untuk perhimpunan yang dinamakan kuat, mungkin perlu memasukkan identiti pemasangan penuh, termasuk versi, budaya dan teg kunci awam.
Pertimbangkan senario berikut, di mana terdapat rentetan yang mengandungi nama jenis yang layak sepenuhnya:
<code class="language-csharp">string typeName = "Namespace.MyClass, MyAssembly";</code>
Bergantung pada sama ada MyAssembly
dirujuk oleh perhimpunan panggilan, sama ada Type.GetType()
atau Assembly.GetType()
boleh digunakan:
<code class="language-csharp">// 如果 MyAssembly 被引用 Type type1 = Type.GetType(typeName); // 如果 MyAssembly 未被引用 Assembly asm = typeof(SomeKnownType).Assembly; Type type2 = asm.GetType(typeName);</code>
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Jenis Objek daripada Perwakilan Rentetan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!