变量已分配,但其值从未使用过(C#)

时间:2015-06-05 05:18:25

标签: c# winrt-xaml

在Visual Studio中,我使用了以下代码:

line = data_file.read(chunk*1000)
for x in range(1000):
    offset = chunk*x
    for item in columns:
        piece = line[item[1]+offset:item[1]+item[2]+offset].replace('\n','')
        #Depending on the data type, a piece may undergo one or two checks before being
        #added to a list which is then written to an output file

编译器给我一个警告,说“已分配答案,但从未使用过它的值”。 我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

这意味着您已为answer提供了值,但未在其他地方引用它。这意味着您没有在程序的其他地方使用答案。

您可以通过引用程序其他部分的答案来修复它。

答案 1 :(得分:2)

如果要禁用警告,错误列表中包含一个按钮,可以阻止它们显示在列表中。

enter image description here

此外,警告只是一个警告。他们不会阻止你的程序编译,甚至不能运行。但是,他们可能会事先声明运行时错误等,所以不要完全忽略它们。

答案 2 :(得分:2)

弹出警告的原因不是因为永远不会分配变量,而是因为它实际上从未用于其余代码中的任何类型的比较。

请仔细阅读此参考资料: http://weblog.west-wind.com/posts/2009/Feb/28/Variable-is-assigned-but-its-Value-is-never-used-Warning

答案 3 :(得分:0)

除了上述答案之外,还可以进一步了解此警告:

此警告将不会始终弹出(如果不使用分配的变量)。分配非常量表达式或方法结果将不会生成警告。这是有意完成的,因为这样的未分配变量可以在调试中使用。

例如:

 var answer = SomeObject.SomePropery; //will not generate CS0219

Microsoft.Docs中有很好的解释: https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0219