1

C# 作业问题:我们在getting和中进行练习,setting并以非常复杂的方式访问变量。

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

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

我正在使用 agetter来访问userMessage变量...

public String Result
{
  get { return userMessage; }
}

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

Console.WriteLine(thegame.Result);

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

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

4

3 回答 3

2

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

string userMessage; // class scope


...

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

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

于 2013-04-03T01:06:48.847 回答
2
if (condition a)
{userMessage = "foo";}
else if (condition b)
{userMessage = "bar";}
...etc.

这是因为您在每种情况下都定义了不同的变量。

于 2013-04-03T01:08:29.063 回答
1

这是因为您正在定义一个在块中调用的变量。将修饰符从块中取出,你应该没问题。userMessageifStringif

于 2013-04-03T01:06:46.993 回答