Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可能错误的空语句警告_C# - Fatal编程技术网

C# 可能错误的空语句警告

C# 可能错误的空语句警告,c#,C#,我是新来的编码,我一直有警告与一整天 “如果(Jtag.activeConnection);” 它给了我“可能错误的空话”。 这不会影响我的节目,但我看过的每一段视频都没有收到警告,我只想清除它。 下面是我的代码 public partial class Form1 : MetroFramework.Forms.MetroForm { XRPC Jtag = new XRPC(); public Form1() { InitializeComponent(

我是新来的编码,我一直有警告与一整天 “如果(Jtag.activeConnection);” 它给了我“可能错误的空话”。 这不会影响我的节目,但我看过的每一段视频都没有收到警告,我只想清除它。 下面是我的代码

public partial class Form1 : MetroFramework.Forms.MetroForm
{
    XRPC Jtag = new XRPC();
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        Jtag.Connect();
        if (Jtag.activeConnection) ;
    }
}

你的if语句是空的

if (Jtag.activeConnection) ;
因此,编译器要求您确认这是否真的是您想要做的

通常应该是这样的

if (Jtag.activeConnection)
{
  // do something
}

你的if语句是空的

if (Jtag.activeConnection) ;
因此,编译器要求您确认这是否真的是您想要做的

通常应该是这样的

if (Jtag.activeConnection)
{
  // do something
}

您将收到编译器警告()

因为

条件语句后的分号可能会导致代码以不同于预期的方式执行

这是一个警告,您可以通过编译器选项、pragma指令来抑制它,或者通过提供一个块来运行您的条件语句来更正它

我推荐梯子;这看起来是这样的:

Jtag.Connect();
if (Jtag.activeConnection) 
{
    // by virtue of having the blocks, and removing the semi-colon.. the warning goes away.
}

您将收到编译器警告()

因为

条件语句后的分号可能会导致代码以不同于预期的方式执行

这是一个警告,您可以通过编译器选项、pragma指令来抑制它,或者通过提供一个块来运行您的条件语句来更正它

我推荐梯子;这看起来是这样的:

Jtag.Connect();
if (Jtag.activeConnection) 
{
    // by virtue of having the blocks, and removing the semi-colon.. the warning goes away.
}

这个问题的两个方面似乎仍然没有答案

1) 我不知道他为什么要做到这一点:

if (Jtag.activeConnection) {}
也许他只是想对这个表达式进行评估(因为它的副作用)。如果是这样,我希望他可以这样做:

Jtag.activeConnection;
或者,如果这不起作用,他可以满足于这样做:

bool dummy = Jtag.activeConnection;
(尽管其中一个或两个可能会引发未使用结果的警告。)

2) 关于“可能错误的空语句”警告:可能他更喜欢将
分支设置为
,如果
分支为
,则将其设置为空
。有时我可能更喜欢
也在
{}
上,如下所示:

if (expression)
    ;
else
    ;
根据MSDN C语言规范,这似乎是合法的。它编译。但是使用空表达式作为if-or-else分支会引发编译器警告:“可能是错误的空语句”(CS0642)。(这是一种糟糕的风格,因为单独的
是模棱两可的。)(遗憾的是,没有明确的
noop;
语句。)

我看不出有什么(明智的)方法可以让警告消失,因为只有那些台词。一些IDE具有针对不需要的警告的压缩单实例覆盖(嵌入在同一行末尾的注释文本中)。VS2005-VS2015只提供了我可以用
#pragma warning disable 0642
#pragma warning restore 0642
来包围有问题的行,这太难看了。(我也拒绝在整个程序上使用#pragma或compile选项-这太危险了。我想单独抑制每个特定的警告。)(C++提供了
#pragma warning suppress
,它会抑制指定的错误一次(在下一行中)虽然只添加了一行丑陋的代码,但C(一定是决定永远不执行它。))

VS不反对我这样做(即使它什么也不做),但我不太喜欢。(它太高了。)

我也不想这样说。(它很紧凑,但是标准的自动漂亮打印不会将
{}
缩进到
所在的位置,尽管我认为应该如此。)


这个问题的两个方面似乎仍然没有答案

1) 我不知道他为什么要做到这一点:

if (Jtag.activeConnection) {}
也许他只是想对这个表达式进行评估(因为它的副作用)。如果是这样,我希望他可以这样做:

Jtag.activeConnection;
或者,如果这不起作用,他可以满足于这样做:

bool dummy = Jtag.activeConnection;
(尽管其中一个或两个可能会引发未使用结果的警告。)

2) 关于“可能错误的空语句”警告:可能他更喜欢将
分支设置为
,如果
分支为
,则将其设置为空
。有时我可能更喜欢
也在
{}
上,如下所示:

if (expression)
    ;
else
    ;
根据MSDN C语言规范,这似乎是合法的。它编译。但是使用空表达式作为if-or-else分支会引发编译器警告:“可能是错误的空语句”(CS0642)。(这是一种糟糕的风格,因为单独的
是模棱两可的。)(遗憾的是,没有明确的
noop;
语句。)

我看不出有什么(明智的)方法可以让警告消失,因为只有那些台词。一些IDE具有针对不需要的警告的压缩单实例覆盖(嵌入在同一行末尾的注释文本中)。VS2005-VS2015只提供了我可以用
#pragma warning disable 0642
#pragma warning restore 0642
来包围有问题的行,这太难看了。(我也拒绝在整个程序上使用#pragma或compile选项-这太危险了。我想单独抑制每个特定的警告。)(C++提供了
#pragma warning suppress
,它会抑制指定的错误一次(在下一行中)虽然只添加了一行丑陋的代码,但C(一定是决定永远不执行它。))

VS不反对我这样做(即使它什么也不做),但我不太喜欢。(它太高了。)

我也不想这样说。(它很紧凑,但是标准的自动漂亮打印不会将
{}
缩进到
所在的位置,尽管我认为应该如此。)


这是因为你有
在语句末尾。所以删除它。

这是因为你有
在语句末尾。所以只要删除它。

如果
,则在
之后没有任何内容。在
button1\u Click
中你想做什么?如果是(Jtag.activeConnection),那么我的程序可以连接到哪个按钮