获取和设置如何影响变量的分配?

时间:2013-04-03 01:02:21

标签: c# visual-studio-2010 compiler-warnings getter-setter

C#家庭作业问题:我们正在gettingsetting进行练习,并以非常复杂的方式访问变量。

我有if...then循环生成的用户消息:

if (condition a)
{String userMessage = "foo";}
else if (condition b)
{String userMessage = "bar";}
...etc.

我使用getter访问userMessage变量...

public String Result
{
  get { return userMessage; }
}

...然后将消息输出到控制台。

Console.WriteLine(thegame.Result);

我收到来自Visual Studio 2010的信息性消息,在我为String userMessage =....Warning 5 The variable 'userMessage' is assigned but its value is never used分配值的四行中。

是否收到此消息是因为我正在访问变量的迂回方式?或者是一个更大问题的症状?所有对在线消息的引用都是在声明一个从未使用的变量的上下文中......但在这种情况下我使用的是userMessage变量。导致错误的原因是什么?

3 个答案:

答案 0 :(得分:2)

您在条件范围内声明变量:

string userMessage; // class scope


...

if (condition) {
     String userMessage = "blah"; // only available until the closing brace
} // out of scope here

这就是警告。您正在创建一个仅限于一行的变量..但从不使用它。

答案 1 :(得分:2)

if (condition a)
{userMessage = "foo";}
else if (condition b)
{userMessage = "bar";}
...etc.

它'因为你在每种情况下都定义了不同的变量。

答案 2 :(得分:1)

这是因为您在userMessage块中定义了一个名为if变量。从String块中取出if修饰符,您应该没问题。