在任意级别注释C#代码而不会过多地混淆代码?

时间:2011-08-12 21:26:16

标签: c#

我正在寻找在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;}
...

虽然每节课都做很多事情?如果上面的例子有一个工作,有人可以给我一个例子,说明它如何“真实”而不是伪代码?

非常感谢。

3 个答案:

答案 0 :(得分:0)

如果您正在调试代码,那么设置制动点并配置制动点上下文菜单中的“When Hit ..”项可能很有用。这个允许您将文本打印到输出窗口而不会破坏执行代码。

答案 1 :(得分:0)

你不能使用属性来装饰语句,不能确定有一种干净的方式来记录你想象的语句。你想用这种冗长的日志记录来完成什么?

答案 2 :(得分:0)

如果你想通过你正在编写的其他程序读取代码(生成图形),我认为你最好的是使用注释,可能是//:之类的“特殊”类型,或者某种东西

我通常建议不要自己解析源代码,但我认为这是唯一的方法。虽然Mono可能在这里有所帮助:它的编译器是开源的,你可以将它用于你的目的。