关于c#:. NET:如何将方法标记为“尚未使用”?

.NET: How do I mark a method as “Not yet used”?

我正在使用ASP.NET,我知道可以将方法标记为:

  • 过时的
  • 不供将来使用

但我在问是否可以将一个方法标记为"尚未使用",这意味着"我写了它,但实际上它是未使用的,迟早会有人使用它"。

谢谢!


您可以在方法中使用适当的消息抛出一个NotImplementedException。这将确保在运行时不调用该方法。

1
2
3
public void MyMethod(){
  throw new NotImplementedException("This will be implemented soon");
}

如果要使用元信息,可以定义自己的属性来修饰方法。(但我认为您也可以用一条特殊消息重用obsoleteattribute)


不,你不能。这样做没什么意义。

Visual Studio 2015确实向您展示了当前项目中的方法用法,它是"死"方法的指示器:

enter image description here


我假设您希望它用于当前不活动的未来功能,因为它没有完全实现(这是我能想象的唯一有意义的情况)。

如果您不想使用它,请不要将它放在接口中(您应该使用接口),也不要将它放在只有您自己拥有的独特的接口中。您还可以将过时的装饰器与"this is not means to be used yet"消息一起使用。

如果有人可以使用它,因为它是公开发布的,你不应该关心它有多少引用。通常,您不知道引用是否来自解决方案之外。您不应该删除这样的方法,因为这是一个破坏性的更改。

如果它是私有的,那么您的IDE应该警告您,您可以删除它或者评论它将来的使用情况;添加一个对它所要使用的功能的引用,这样您就可以在它关闭时删除它(有人认为它不会被实现)。


您可以在该方法的文档注释中表达您对未使用方法的所有遗憾。只是不要抛出任何NotImplementedException,否则这种方法将永远不会被使用。

不过这有点蠢,如果不用的话,你应该把它取下来。实践表明,大多数"还没有,但可能有一天"的代码根本不会被使用,所以删除它是完全有意义的。如果出于某种原因,您以后需要这个方法,您可以随时检查源代码管理。

如果您更愿意丢弃您的解决方案,那么您总是可以做一些愚蠢的事情,比如实现定制的[PleaseUseMe]属性。


这是由NotImplementedException管理的,在实现接口时非常有用,因为您知道将来需要哪些成员,但现在不想实现它们。该方法的任何用户都将获得异常,但是如果您需要编译时标志,那么您将通过使用Obsolete属性以及一条有意义的消息(如"此方法尚未实现"和内部异常)来关闭该标志。


仅仅因为你不能,并不意味着你应该……为什么要编写尚未使用的代码?

这就像是带着保暖内衣去撒哈拉,以防寒流来袭,而你只在白天来。

虽然您可以抛出一个NotImplementedException,但这不会给您编译时的安全性——它只会在运行时抛出这个异常。