程式化等同於default(Type)
在使用反射迭代類型的屬性並將某些類型設為其預設值時,您可能希望採用比基於類型的明確預設設定更簡潔的方法。在這種情況下,是否存在可用於此類場景的程式化等同於default(Type)?
解:
為了實現這一點,可以使用以下選項:
值型態:
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
。
以上是如何以程式設計方式取得 C# 中任何類型的預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!