Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Jenis Objek daripada Perwakilan Rentetan dalam C#?

Bagaimana untuk Menentukan Jenis Objek daripada Perwakilan Rentetan dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-23 14:47:13199semak imbas

Tentukan jenis objek berdasarkan 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.

Gunakan 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>

Gunakan 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>

Kelayakan ruang nama dan perhimpunan

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.

Contoh senario

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>

How to Determine Object Type from its String Representation in C#?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn