C#将int转换为string并在Label中使用

时间:2016-11-12 11:49:02

标签: c# int

我有以下场景。我在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#很新,所以我真的感觉很好。感谢...

3 个答案:

答案 0 :(得分:2)

在C#中,您无法直接将int分配给string。它必须始终进行转换(将字符串解析为整数,或从整数中获取字符串)。

正如您所说,最好将整数转换为字符串以用于显示目的。标签不能直接显示整数,所以你总是需要转换它,或者如果它不够就写一些包装类。

请注意ToString()是特定于文化的,即它将使用当前线程中的文化。它可能是也可能不是你想要的。如果您需要InvariantCulture,可以使用ToString(CultureInfo.InvariantCulture)

P.S。正如评论中所提到的,您可以执行各种技巧,例如ExclRate + ""或C#6 ${ExclRate},但它们基本上都是将整数转换为字符串。我猜他们都在里面打电话给ToString()

答案 1 :(得分:0)

这对我有用:

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

非常感谢有关此主题的见解。对于我正在进行的项目,我将在字符串中操作数据...

答案 2 :(得分:0)

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

如果PriorExclTimer为空或空,则上面的代码会给出异常。因此,最好使用int.TryParse将其分配给int。不是在这种情况下,但是ToString不处理null情况,它会给出异常。所以你应该试试Convert.ToString。 在进行字符串操作时,您必须处理文化和大小写(字符串区分大小写或不区分大小写)