gpt4 book ai didi

c# - 检查对象的实例是否是只读的

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

如果我有一个对象的实例,我如何检查它是否是只读的?

我已经搜索过 System.Type,其中有很多 IsXxxx()GetXxxx() 类型的函数,但没有 IsReadOnly()IsWriteable()GetReadWriteProperty() 或类似的任何内容。我想像 myObj.GetType().IsReadOnly() 这样的东西太简单了,而且 Object 类本身除了 GetType() 之外没有任何用处。

当我用谷歌搜索这个问题时,我得到的只是使用 readonly 关键字的方法。

我想过使用 Reflection 和 GetProperty() 但这是一个存在于 List<> 中的基类,我需要这个对象的实例是另一个对象中的一个单独的属性才能做到这一点我想.

有什么想法吗?

最佳答案

没有对象 是只读的概念。 变量 可以是只读的,但那是另一回事。例如:

class Foo
{
private readonly StringBuilder readOnlyBuilder;
private StringBuilder writableBuilder;

public Foo()
{
readOnlyBuilder = new StringBuilder();
writableBuilder = readOnlyBuilder;
}
}

这里只有一个 StringBuilder 对象,但有两个字段 - 一个只读,一个可写。

如果您要问类型 是否不可变(例如,string 是不可变的,StringBuilder 不是),这是一个更棘手的问题。 .. 不变性有许多不同的种类。参见 Eric Lippert's blog post on the matter了解更多详情。

关于c# - 检查对象的实例是否是只读的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921920/

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