反射中設置屬性的默認值等效項
當通過反射操作對象屬性時,需要為不同的數據類型設置默認值。 本文探討了簡化此過程的編程替代方案,而不是為每種類型手動處理默認值。
問題:
此問題尋求一種編程方式,在反射循環期間為屬性分配默認值,而無需顯式使用特定於類型的默認關鍵字。
答案:
提供了兩種解決方案:
值類型:
Activator.CreateInstance
實例化值類型的新默認實例。 引用類型:
null
,因為它們默認為 null
。 代碼示例:
以下代碼片段說明了該解決方案的實現:
<code class="language-csharp">public static object GetDefault(Type type) { if (type.GetTypeInfo().IsValueType) { return Activator.CreateInstance(type); } return null; }</code>
注意:
為了與較新版本的 .NET(例如 .NET Standard)兼容,應將 type.IsValueType
替換為 type.GetTypeInfo().IsValueType
。
以上是如何在反射期間以程式設定屬性的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!