我想在方法的参数列表中的某个条件失败时创建一种编译器警告。我之所以不抛出异常的原因是,用户可能只是将“坏”参数放到方法中,但是方法结果有点不可预测。 Si我只是想给他一个提示,即给定的参数可能无效,例如Visual Studio中通常的调试警告,表示“检测到无法访问的代码”或“未使用的变量”等。
有办法做到这一点吗?
编辑:只是一段示例代码:
void main() {
MyObject m = new MyObject();
this.doSomething<MyObject>(m);
}
T doSomething(object m) {
// put a message to the compiler-warnings that states the used object should derive from type T
}
答案 0 :(得分:1)
您可以使用
System.Diagnostics.Debug.WriteLine(message)
其中message是您要编写的调试消息。
可能在语法上方便调试的替代方法是
System.Diagnostics.Debug.Assert(condition, message)
其中condition是布尔条件,仅当条件的计算结果为false时才显示消息。
答案 1 :(得分:0)
C#编译器不公开这种事物的可扩展性机制。但是,这听起来像是自定义FxCop / Visual Studio代码分析规则的非常好的候选者。