首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板