首頁 > 後端開發 > C++ > 如何從 C# 中的字串表示形式確定物件類型?

如何從 C# 中的字串表示形式確定物件類型?

Mary-Kate Olsen
發布: 2025-01-23 14:47:13
原創
198 人瀏覽過

C#中根據字串表示確定物件類型

在C#中,可以將包含型別名稱的字串轉換為對應的Type物件。但是,這種轉換所使用的方法取決於類型是在與呼叫程式碼相同的程式集中定義,還是在不同的程式集中定義。

使用Type.GetType(string)

如果類型在同一程式集中定義,可以使用Type.GetType(string)方法,並提供完全限定的類型名稱作為字串。例如,要取得int資料類型的Type,可以使用:

<code class="language-csharp">Type.GetType("System.Int32");</code>
登入後複製

使用Assembly.GetType(string)

如果類型在不同的程式集中定義,則還需要提供組件名稱。可以使用Assembly.GetType(string)方法來實現。首先,取得程式集的引用,然後使用該引用來取得Type

<code class="language-csharp">Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");</code>
登入後複製

命名空間與程式集限定

確保在提供給Type.GetType()Assembly.GetType()的字串中包含類型的命名空間。此外,對於強命名程序集,可能需要包含完整的程序集標識,包括版本、區域性和公用金鑰標記。

範例場景

考慮以下場景,其中有一個字串包含類型的完全限定名稱:

<code class="language-csharp">string typeName = "Namespace.MyClass, MyAssembly";</code>
登入後複製

根據MyAssembly是否被呼叫程式集引用,可以使用Type.GetType()Assembly.GetType()

<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#?

以上是如何從 C# 中的字串表示形式確定物件類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板