相关疑难解决方法(0)

单身人士有什么不好的?

单例模式是一个缴足成员四人帮模式书,但最近似乎而是由开发者世界孤立.我仍然使用相当多的单例,特别是对于工厂类,虽然你必须对多线程问题(实际上是任何类)有点小心,但我不明白为什么它们如此可怕.

Stack Overflow特别假设每个人都同意Singletons是邪恶的.为什么?

请用" 事实,参考或特定专业知识 " 支持您的答案

singleton design-patterns

1931
推荐指数
30
解决办法
48万
查看次数

CA2104警告:有没有办法将类标记为"不可变"来抑制它?

请考虑以下代码,这些代码会引发 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
{
}
Run Code Online (Sandbox Code Playgroud)

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

我试着装饰MutableClass[ImmutableObject(true)]没有成功的希望(因为表格编辑器使用的属性非常清楚),而且确实它不起作用.

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

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

无论如何,我有什么属性可以忽略吗?如果没有,则必须进行抑制.

目前似乎没有替代方法可以做到这一点.

我找到了一个有趣的博客,来自Joe Duffy("Windows上的并发编程"一书的作者)关于这种事情.

他从"想象我们有一个ImmutableAttribute"开始....... :)

这很有意思 - 他遇到了编写一些新的FxCop规则来分析属于不可变的类型的麻烦.

c# code-analysis immutability

12
推荐指数
1
解决办法
2464
查看次数

c#中的常量字段成员

大家好我很困惑我是const long size =((long)int.Maxvalue+1)/4如何插入的...当我们定义static const long size =((long)int.Maxvalue+1)/4什么是readonly会员时会发生什么......

c#

5
推荐指数
1
解决办法
9784
查看次数