gpt4 book ai didi

c# - 如何在 C# 中使用反射更改静态只读字段的值?

转载 作者:太空狗 更新时间:2023-10-29 22:23:55 32 4
gpt4 key购买 nike

fieldInfo 类中的 SetFields 方法将对象作为第一个参数。有没有办法在 C# 中使用反射更改静态只读字段的值?

目前为止

var field = typeof(ClassName).GetField("FieldName",BindingFlags.Instance|BindingFlags.NonPublic);

最佳答案

如果你想获得一个静态字段,那么你应该使用 BindingFlags.Static 而不是 BindingFlags.Instance,因为后者是实例字段。

然后您可以使用 field.SetValue(null, newValue) 来设置值。请注意,null 可以作为目标参数传递,因为不需要对象实例。假设您有足够的权限,反射将愉快地更改只读字段的值。

关于c# - 如何在 C# 中使用反射更改静态只读字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747524/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com