我有一个只能由开发人员在特殊情况下使用的功能。
不幸的是,设置公共/私有并没有多大帮助,因为在许多情况下它需要可见。
我已经使用xmldocs记录了该函数,以便向开发人员发出警告,但是是否可以输出编译器警告?也许使用一个属性,类似于将一个函数标记为过时的?
或者,如果某人有任何有用的架构建议来引导人们远离危险的方法(我猜这可能是单独的命名空间,继承等?)
其他详细信息
谢谢你的回答,很多1 +来自我: - )
这也帮助我澄清了我的问题:
[已废弃(“我的消息”)]在某些方面对#warning更好,因为它只会在实际使用该方法时显示警告。然而正如ChrisF指出的那样,它实际上并不是一种过时的方法,因此并不准确。
[Obsolete(“我的消息”)的功能之间是否存在中间立场,但没有意义?
答案 0 :(得分:3)
您可以使用#warning ...
http://msdn.microsoft.com/en-us/library/963th5x3(v=vs.100).aspx
的更多信息答案 1 :(得分:3)
在Visual Studio中,您可以抛出这样的错误和警告。
#warning This line is a compiled warning
我不确定你是否可以有条件地做,但这会在编译时发出警告。
答案 2 :(得分:1)
使用Obsolete属性:
[Obsolete("Please don't use this")]
public void DodgyMethod()
{
}
任何试图调用该方法的代码都会导致编译器发出警告。
虽然从技术上讲它不是一种过时的方法,但效果是一样的。
答案 3 :(得分:1)
您应该在方法中添加[Obsolete("Don't use this outside of whatever")]
。
答案 4 :(得分:1)
我认为解决此问题的最佳方法是编写一个小型Roslyn Analyzer并将其与您的库一起发送。这样,您就可以生成自定义代码检查,并且还允许开发人员使用Suppress属性以适当的原因来抑制警告。
可以在此处找到示例:https://msdn.microsoft.com/magazine/dn879356.aspx。