正如您在我的代码中所看到的,我正在尝试为英寸和英尺定义变量,因此我可以在我的stringbuilder中使用它。
尝试将变量定义为string,char,var,不确定还要做什么。还尝试了@逃脱。
有什么想法吗?
var footsize;
if (dlFtSize.SelectedValue == "in")
{
footsize = '\"';
}
else if (dlFtSize.SelectedValue == "ft")
{
footsize = '\'';
}
编辑:
正确的方法。
string inchsize = "";
if (dlinchSize.SelectedValue == "In")
{
inchsize = "\"";
}
else
{
inchsize = "'";
}
答案 0 :(得分:2)
当我使用char并尝试使用变量时,我使用了未分配的局部变量。
这是因为,就程序而言,dlFtSize.Selected值可能是“dfsklj”(或其他任何东西)。当你尝试使用它时,footsize没有与之相关的值。
您可以像这样初始化footsize:
string footsize = "";
或者,您可以使用if / else,而不是if / else if。
你应该可以使用类似的东西:
string footsize = "";
if (dlFtSize.SelectedValue == "in")
{
footsize = "\"";
}
else if (dlFtSize.SelectedValue == "ft")
{
footsize = "'";
}
除非您同时指定值,否则使用var将不起作用。字符串很好,但你必须为变量分配字符串(使用双引号而不是单引号。)char也应该有效,但是你可以使用单引号。
答案 1 :(得分:1)
var footsize;
无效。您必须先为footsize
指定一个值。然后你可以使用它。
(Implicitly Typed Local Variables)。
例如,var footsize = String.Empty;
然后你还需要更改你的作业:
if (dlFtSize.SelectedValue == "in")
{
footsize = "'";
}
else if (dlFtSize.SelectedValue == "ft")
{
footsize = "\"";
}
答案 2 :(得分:0)
在C#中,单引号用于定义字符文字。双引号用于定义字符串文字。要定义英寸和英尺,可以使用不同的常量标准值。
答案 3 :(得分:0)
当我使用char并尝试使用变量时,我使用了未分配的局部变量。
您需要确保为footsize
分配值。我建议您将代码更改为以下内容:
char footsize;
switch (dlFtSize.SelectedValue)
{
case "in":
footsize = '"';
break;
case "ft":
footsize = '\'';
break;
default:
throw new NotImplementedException(string.Format("Not implemented foot size: `{0}`", dlFtSize.SelectedValue));
}
此外,如果没有使用值初始化var
,则不能使用{{1}},以便编译器可以告诉变量的类型。