繁体   English   中英

C#将int转换为字符串并在Label中使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM