2013-10-31 41 views
0

当方法的参数列表中的某个条件失败时,我想创建一种编译器警告。我不只是抛出一个异常的原因是,用户可能有可能为方法提供一个“坏”的参数,但是这样的方法结果是有点不可预知的。我只想给他一个提示,即给定的参数可能不是有效的,比如Visual Studio中通常的状态为“检测不到的代码”或“变量从未使用过”等的调试警告。在VisualStudio中抛出Debugeger警告

有没有办法做到这一点?

编辑:只是一个样本一段代码:

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

您是否想将它“扔”到调试会话中或程序正常运行期间? – SJuan76

+0

不仅在调试期间,而且在正常编码会话期间... – HimBromBeere

+1

抛出异常。调用具有未定义行为的方法的程序员只是一个等待发生的错误。 – SJuan76

回答

1

您可以使用

System.Diagnostics.Debug.WriteLine(message) 

其中,消息是要写入调试信息。

可能对调试语法方便的替代方案是

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

其中条件是一个布尔条件,并且仅当条件的计算结果为假则显示消息。

0

C#编译器不公开此类事物的可扩展性机制。但是,这听起来像是一个非常适合自定义FxCop/Visual Studio代码分析规则的候选人。