0

如何以编程方式注释掉一些评论?想想这样的事情:-

void releaseA()
{
   //ToDo:
}
//string A = "Test";
releaseA();
textbox1.Text = A;

我怎样才能实现这一点并实现方法releaseA来注释掉//string A = "Test"; 我搜索但仍然找不到任何东西。

4

4 回答 4

2

我认为你真正想做的是:

string a = "";

if (condition)
    a = "Test";

textBox1.Text = a;

因此,对于您的复选框和文本框示例:

string text = "";

if (checkBox.Checked)
    text = inputTextBox.Text;

resultTextBox.Text = text;
于 2013-07-23T20:37:19.760 回答
1

如果您想在构建指定文件之前注释代码,您可以使用编译器开关并在 VS 或 MSBuild 中构建文件时指定编译器开关。

你可以使用这样的东西:

#ifdef _DEBUG
//string A = "Test";
#else
string A = "Test";
#endif
于 2013-07-23T20:36:02.337 回答
0

我不在 c# 中编写代码,但在 c 和 Objective 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不是 a #ifdef#ifdef因为 '0' 仍然是“已定义”,所以仍然是 true,而是#if对值 '0' / '1' 的布尔测试,分别为 false/true。

于 2013-11-10T22:32:44.677 回答
0

我相信编译器会忽略注释,并且不会驻留在整个 exe 中。因此,鉴于您当前的代码,这在技术上是不可能的。

此外,一旦将其编译为字节码,您就不会提及该代码将在哪个“行”上运行。

于 2013-07-23T20:36:52.963 回答