Joz*_*oze -1 c# compiler-construction warnings compiler-warnings
我发布此消息是因为我想知道我的c#
代码中出现了警告:
私有字段xxxx已分配,但其值从未使用过
有问题的属性仅用作用户的标志.实际上,用户可以访问(获取)值false
或true
知道某事物的状态.
以下是创建此警告的代码示例:
class Class1 {
//Attributs
private b_myboolean = false;
//Accessors
public bool B_myboolean
{
get{ return b_myboolean;}
}
//Methods
//Somewhere in a method
b_myboolean =true;
}
Run Code Online (Sandbox Code Playgroud)
这样的东西会返回警告.你知道为什么吗 ?我是否需要以另一种方式编写此标志?
感谢您提前帮助.
JOZE
Jon*_*eet 12
您发布的代码根本不会编译,更不用说显示正确的警告......但我猜你的实际代码如下所示:
private bool b_myboolean;
public bool B_myboolean
{
get { return B_myboolean; } // Bug!
}
Run Code Online (Sandbox Code Playgroud)
现在这永远不会使用该字段 - 因为该属性将递归调用自身.
当然,只有猜测 - 如果您将代码更新为更现实的代码,我们可以肯定地说.
Pat*_*ick 11
您可以禁用此特定警告.
以下是两个候选人,其中包含未使用字段或未使用其值的警告:
警告169:从不使用字段'xxx' 警告414:分配字段'xxx'但从未使用其值
#pragma warning disable 414
//Attributs
private b_myboolean = false;
#pragma warning restore 414
Run Code Online (Sandbox Code Playgroud)
我也遇到了警告信息.一般情况下,当然不应禁用警告.但围绕这个领域并不是太戏剧化.
小智 5
对我来说,我收到了同样的警告,当我查看我的代码时,我确定它正在被使用。
所以我有一个这样的私人领域:
private bool isClosing;
Run Code Online (Sandbox Code Playgroud)
我什至在构造函数中将它设置为 false。然后在 MouseClick 事件上,我将其设置为 True。那么它到底是怎么不被使用的呢?然后我就恍然大悟了!!!
你看,只是在我的代码中的不同地方设置一个变量为一个值并没有使用它。它只是将其设置为各种值。除非我在某些逻辑(if
语句)中使用它,否则它并没有真正被使用。
你必须考虑一下......如果你真的想确定......继续并删除你将它设置为某个值的所有地方......你会发现你的代码仍然有效就像删除之前一样。
它必须是因为您从未将变量用于任何事情。同样,在整个代码中将变量设置为不同的值并不是在使用它!!
现在这就是聪明的 Visual Studio。:)