如何以编程方式评论某些评论? 想想这样的事情: -
void releaseA()
{
//ToDo:
}
//string A = "Test";
releaseA();
textbox1.Text = A;
我如何实现这一点并实施方法releaseA
来评论//string A = "Test";
我搜索但仍然找不到任何东西。
答案 0 :(得分:2)
我认为你真正想做的是:
string a = "";
if (condition)
a = "Test";
textBox1.Text = a;
因此,对于复选框和文本框的示例:
string text = "";
if (checkBox.Checked)
text = inputTextBox.Text;
resultTextBox.Text = text;
答案 1 :(得分:1)
如果要在构建指定文件之前注释代码,可以使用编译器开关,并在VS或MSBuild中构建文件时指定编译器开关。
您可以使用以下内容:
#ifdef _DEBUG
//string A = "Test";
#else
string A = "Test";
#endif
答案 2 :(得分:0)
我认为编译器会忽略注释,并且不会驻留在整个exe中。因此,鉴于您当前的代码,这在技术上是不可能的。
此外,一旦编译成字节码,你就没有参考代码所在的“行”。
答案 3 :(得分:0)
我不用c#编码,而是在c&目标C,所以我相信这种方法是可移植的。
如果我有一个功能,我希望能够在编译时有条件地启用,并可能在运行时禁用它(不是相反!),我使用以下方法。
在所有相关文件将看到的全局(前缀)标题(或命令行开关)中,定义一个强制编译器物理包含该功能的常量代码到可执行文件中。这实际上是一个博尔常数。
#define acme_support 1
在一个公共头文件中(例如settings.h)定义一个包装器,它告诉运行时 代码,如果该功能可用。如果它不可用,它是硬编码的。如果它可用,它是一个外部布尔。
#if acme_support
extern bool runtime_acme_support;
#else
#define runtime_acme_support 0
#endif
与“settings.h”关联的实施文件中的(我们称之为“settings.c”):
#if acme_support
bool runtime_acme_support = 1;
#endif
然后在整个项目中要包含该功能的代码:
#if acme_support
if (runtime_acme_support) {
/* process the acme widgets for the acme store. */
}
#endif
正如您所看到的,#if
/ #endif
可防止在编译时未包含禁用的代码,但如果某些条件需要,您仍可在运行时“禁用”该功能(例如,不存在所需的硬件)
请注意,#if
不是#ifdef
,因为{0}仍然是“已定义”,因此#ifdef
仍为真,而#if
是布尔测试值'0'/'1'分别为false / true。