首頁 >後端開發 >C++ >如何在 C# 中使用反射和字串輸入來設定屬性值?

如何在 C# 中使用反射和字串輸入來設定屬性值?

Linda Hamilton
Linda Hamilton原創
2025-01-20 10:41:08683瀏覽

How Can I Set Property Values Using Reflection with String Inputs in C#?

在 C# 中使用反射透過字串輸入設定屬性值

操作物件通常需要動態設定屬性值,即使這些值最初是作為字串提供。 當屬性的類型與字串不同時,這可能會很棘手。 直接使用類型不符的 SetValue() 會導致 ArgumentException.

考慮使用字串「5.5」更新 Ship 物件的「Latitude」屬性(數字類型)。 解決方案在於在賦值之前將字串轉換為正確的資料類型。 Convert.ChangeType() 非常適合這種運行時類型轉換。

以下是實施此解決方案的方法:

<code class="language-csharp">Ship ship = new Ship();
string value = "5.5";
PropertyInfo propertyInfo = ship.GetType().GetProperty("Latitude");
propertyInfo.SetValue(ship, Convert.ChangeType(value, propertyInfo.PropertyType), null);</code>

此程式碼利用 propertyInfo.PropertyType 中的執行時間類型資訊在設定「Latitude」屬性之前正確轉換字串「5.5」。這種方法有效地處理各種屬性類型,為使用字串輸入的動態屬性值分配提供了強大的解決方案。

以上是如何在 C# 中使用反射和字串輸入來設定屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn