加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – CA2104警告:有没有办法将类标记为“不可变”来抑制它?

发布时间:2020-12-15 06:34:39 所属栏目:百科 来源:网络整理
导读:考虑以下代码,这激发了 CA2104: Do not declare read only mutable reference types. public class Test{ // This provokes CA2104: "Do not declare read only mutable reference types". protected readonly ImmutableClass ImmutableMember;}public class
考虑以下代码,这激发了 CA2104: Do not declare read only mutable reference types.
public class Test
{
    // This provokes CA2104: "Do not declare read only mutable reference types".
    protected readonly ImmutableClass ImmutableMember;
}

public class ImmutableClass
{
}

有没有人知道一种方式来标记一个类是不可变的,会抑制CA2104的警告?

我尝试用[ImmutableObject(true)]装饰MutableClass,没有成功的希望(因为该属性对于表单编辑器使用来说非常明显),并且确实不起作用.

我假设在确定是否发出CA2104时,Code Analysis正在使用已知的不可变类型列表,所以我们不能使用相同的方法.

我猜,即使你可以将一个类标记为不可变的,编译器也无法真正地检查它是否是真的,但至少它可能是一个有用的指标.

无论如何,我有什么属性我俯瞰?如果没有,压制就要做了.

目前还没有其他办法可以做到这一点.

我找到了an interesting blog from Joe Duffy (author of “Concurrent Programming On Windows”) about this kind of thing.

他开始说:“想像我们有一个不可侵犯的属性.”…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读