当有人试图在我的SDK中创建某些类型的新类时,我希望显示一条消息。目前,我拥有这些评论的所有类属性:
/// <summary>
/// This class and its use is not implemented in (my) SDK
/// </summary>
只有两种方法,SDK的用户不需要访问它们
但这只会在您对类的属性使用Intellisense时显示。 如果我将类设置为抽象,那么在尝试创建新实例时我会得到这个:
Cannot create an instance of the abstract class or interface 'MyClass1'
是否有可能以任何方式让开发人员知道该类无法实例化,因为使用该类的功能并未在SDK中实现?
类似于[NotImplemented]
属性的东西,也许是??
答案 0 :(得分:0)
表明这一点的标准方法是让方法抛出NotImplementedException。不幸的是,这意味着只有在运行时时才能明白该功能未实现。
但是,如果您使用在编译时抛出NotImplementedException
的方法,则流行的扩展ReSharper会向您发出警告。
您在构建/设计时间可以做的最好的事情是使用ObsoleteAttribute。您可以给它一个自定义消息,并使标记的方法/类使用错误:
[Obsolete("This method is not implemented!", true)
public void MyFunc()
{
throw new NotImplementedException();
}
这会引发错误CS0619:'MyClass.MyFunc()' is obsolete: 'This method is not implemented!'
答案 1 :(得分:0)
如果该类不适合外部使用,您可以将该类标记为内部,并且sdk的用户将无法访问该类。如果用户不应该看到类的方法,我会考虑将它们标记为私有。