将int转换为string并用于Label

本文关键字:用于 Label string int 转换 | 更新日期: 2023-09-27 18:17:30

我有以下场景。我在Winforms中使用App.config,我有一个值设置为int(在设置中)。我想使用这个值作为标签文本。标签只能显示字符串值,我说的对吗?这就是我在这里所做的,但没有得到预期的结果(标签的值):

        int ExclRate = Properties.Settings.Default.PriorExclTimer;
        string ExclTime = ExclRate.ToString();
        ExclTime = label60.Text;

PriorExclTimer是app.config中值的类型。

如果我将app.config中的值设置为string,我可以使此工作,但这意味着我必须在程序中更敏感的部分从字符串转换为int,如果可能的话,我宁愿不这样做。

         label60.Text = Properties.Settings.Default.PriorExclTimer;

我对c#很陌生,所以我真的很熟悉。谢谢…

将int转换为string并用于Label

在c#中不能直接将int赋值给string。它必须始终进行转换(要么将字符串解析为整数,要么将整数转换为字符串)。

就像你说的,为了显示的目的,最好把整数转换成字符串。标签不能直接显示整数,所以你总是需要转换它,或者如果不够的话,写一些包装器类。

请注意ToString()是特定于区域性的,即它将使用当前线程的区域性。这可能是你想要的,也可能不是。如果你想要InvariantCulture,你可以使用ToString(CultureInfo.InvariantCulture)

注:正如评论中提到的,你可以使用各种技巧,比如ExclRate + "",或者c# 6中的${ExclRate},但它们基本上都是将整数转换为字符串。我猜他们都在里面调用ToString()

int ExclRate = Properties.Settings.Default.PriorExclTimer;
label60.Text = ExclRate.ToString();
如果PriorExclTimer为null或空,上面的代码会给你一个异常。所以最好使用int.TryParse将其赋值为int。不是在这种情况下,但ToString不处理null的情况,它给出了异常。所以你应该试试Convert.ToString。在进行字符串操作时,必须注意区域性和大小写(字符串大小写敏感或不敏感)

这个适合我:

int ExclRate = Properties.Settings.Default.PriorExclTimer;
label60.Text = ExclRate.ToString();

非常感谢你对这个话题的见解。我将操纵数据的字符串和从一个很好的一点为我正在工作的项目…