属性是否可以禁止目标类实现公共构造函数?

时间:2014-05-21 07:21:13

标签: c# attributes compiler-errors

鉴于以下情况:

我有一个可以放在课堂上的自定义属性。 (它表示一个Singleton,因此任何使用此属性的类都可以实例化为Singleton)。

但是,当然,对于一个好的Singleton,您可能无法通过在.NET中使用new()函数来创建对象的新实例

因此,当实现此属性的类具有公共构造函数时,是否可以抛出自定义生成错误?

2 个答案:

答案 0 :(得分:1)

没有。你只能限制属性可以用于类,但不能用于类的形状。

答案 1 :(得分:1)

我建议您要求编译器对代码的 design 进行一些逻辑测试。但是,我认为编译器的主要目的只是为了检查代码的完整性,所以也许让它也检查设计特性会让人感到困惑。

我建议应考虑替代设计。例如。为所有单身人士使用基类:请参阅this postthis post

或者,在过去,我还使用单元测试来检查代码是否已正确构造。 Here is an unrelated answer可能会为您提供有关如何将其应用于您的情况的一些想法。