[英]C# Convert int to string and use in a Label
我有以下情况:我在Winforms中使用App.config,并且我有一个设置为int(在设置中)的值。 我想将此值用作标签文本。 我是否正确,标签只能显示字符串值? 这是我在这里所做的,但没有得到预期的结果(标签的值):
int ExclRate = Properties.Settings.Default.PriorExclTimer;
string ExclTime = ExclRate.ToString();
ExclTime = label60.Text;
PriorExclTimer是app.config中值的类型。
如果我将app.config中的值设置为string,我可以使它工作,但这意味着我必须在程序的更敏感部分将string转换为int,如果可能的话,我宁愿不必这样做。 这是可行的行:
label60.Text = Properties.Settings.Default.PriorExclTimer;
我是C#的新手,所以我真的感觉到了自己的方式。 谢谢...
在C#中,您不能直接将int
分配给string
。 它必须始终进行转换(将字符串解析为整数,或者使字符串超出整数)。
正如您所说的,出于显示目的,最好将整数转换为字符串。 标签不能直接显示整数,因此您将始终需要对其进行转换,或者如果不够,则需要编写一些包装器类。
请注意, ToString()
是特定于区域性的,即它将使用当前线程中的区域性。 它可能不是您想要的。 如果需要InvariantCulture
,则可以使用ToString(CultureInfo.InvariantCulture)
。
PS如评论中所述,您可以执行各种技巧,例如ExclRate + ""
或在C#6 ${ExclRate}
,但是它们基本上都是将整数转换为字符串。 我猜他们都在里面调用ToString()
。
这对我有用:
int ExclRate = Properties.Settings.Default.PriorExclTimer;
label60.Text = ExclRate.ToString();
非常感谢您对该主题的见解。 我将为正在处理的项目在字符串之间来回处理数据...
int ExclRate = Properties.Settings.Default.PriorExclTimer;
label60.Text = ExclRate.ToString();
如果PriorExclTimer
为null或为空,则上面的代码将为您提供异常。 因此最好使用int.TryParse
将其分配给int。 不在这种情况下,但是ToString
不处理null
情况,它给出了异常。 因此,您应该改用Convert.ToString
。 在进行字符串操作时,您必须注意区域性和大小写(字符串区分大小写或不区分大小写)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.