我想创建一种编译器-当方法的参数列表中的某个条件失败时发出警告。我不会抛出异常的原因是,用户可能只会给方法设置一个“不好”的参数,但方法的结果是不可预测的。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
}发布于 2013-10-31 19:38:12
您可以使用
System.Diagnostics.Debug.WriteLine(message)其中message是要写入的调试消息。
另一种可能在语法上便于调试的替代方法是
System.Diagnostics.Debug.Assert(condition, message)where条件是布尔条件,仅当条件的计算结果为false时才显示消息。
发布于 2013-10-31 20:34:27
C#编译器不会为这类事情公开可扩展性机制。然而,这听起来像是自定义FxCop/Visual Studio代码分析规则的一个非常好的候选者。
https://stackoverflow.com/questions/19705456
复制相似问题