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

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

Linda Hamilton
發布: 2025-01-20 10:41:08
原創
682 人瀏覽過

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中文網其他相關文章!

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