我正在寻找在C#中执行以下操作的最佳方法。
说我有一套指示:
int a = 1;
int b = 2;
if (a==b) {return;}
...
我需要获得每条指令或指令集的一些信息。所以我对代码进行了注释,大致如下:
Console.WriteLine("a");
int a = 1;
Console.WriteLine("a");
int b = 2;
Console.WriteLine("if");
if (a==b) {
Console.WriteLine("ret");
return;}
...
现在假设我需要有更多关于每条指令的完整信息,实际上有几个类有一些方法,我甚至想把一些信息传递给那些类。像这样注释代码肯定会将代码混淆到几乎无法读取的程度。例如,想象一下中间指令的大量打印。
我的问题,最后是:有没有办法([Attributes]
会在这里帮助?)注释具有任意复杂注释水平的代码,而不会混淆它?我可以想象像属性一样的东西,看起来像
[Class.variable("a")]
int a = 1;
[Class.variable("a")]
int b = 2;
[Class.instruction("if")]
if (a==b) {
[Class.instruction("ret")]
return;}
...
虽然每节课都做很多事情?如果上面的例子有一个工作,有人可以给我一个例子,说明它如何“真实”而不是伪代码?
非常感谢。
答案 0 :(得分:0)
如果您正在调试代码,那么设置制动点并配置制动点上下文菜单中的“When Hit ..”项可能很有用。这个允许您将文本打印到输出窗口而不会破坏执行代码。
答案 1 :(得分:0)
你不能使用属性来装饰语句,不能确定有一种干净的方式来记录你想象的语句。你想用这种冗长的日志记录来完成什么?
答案 2 :(得分:0)
如果你想通过你正在编写的其他程序读取代码(生成图形),我认为你最好的是使用注释,可能是//:
之类的“特殊”类型,或者某种东西
我通常建议不要自己解析源代码,但我认为这是唯一的方法。虽然Mono可能在这里有所帮助:它的编译器是开源的,你可以将它用于你的目的。