0

当方法的参数列表中的某个条件失败时,我想创建一种编译器警告。我不只是抛出异常的原因是,用户可能有可能只是给方法加上一个“坏”的参数,但是方法的结果有点不可预测。我只是想给他一个提示,给定的参数可能无效,例如 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
}
4

2 回答 2

1

您可以使用

System.Diagnostics.Debug.WriteLine(message)

其中 message 是您要编写的调试消息。

一种可能在语法上便于调试的替代方法是

System.Diagnostics.Debug.Assert(condition, message)

其中 condition 是一个布尔条件,只有当条件评估为 false 时才会显示消息。

于 2013-10-31T11:38:12.143 回答
0

C# 编译器没有为这类事情公开可扩展性机制。但是,这听起来像是自定义 FxCop/Visual Studio 代码分析规则的一个很好的候选者。

于 2013-10-31T12:34:27.447 回答