2016-11-12 57 views
0

我有以下scenario.I在Winforms中使用App.config,我有一個值設置爲int(在設置中)。我想將此值用作標籤文本。 我正確的標籤只能顯示字符串值嗎? 這是我在這裏的事情,但沒有得到預期的結果(值標籤):C#將int轉換爲字符串並在標籤中使用

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

PriorExclTimer是在app.config中的值的類型。

我可以做這個工作,如果我把app.config中的值設置爲字符串,但這意味着我將不得不在字符串轉換爲int在一個更敏感的程序部分,我寧願不必儘可能做到這一點。這是工作的那條線:

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

我對C#很新,所以我真的感覺我的方式。謝謝...

+2

這是一個有點怪,你問如何分配到標籤的屬性轉換,而你周圍的其他方式(從標籤文本中分配一個屬性)? –

+0

您可以使用label60 = ExclRate .ToString()或ExclRate .ToString(formatstring)或簡單地使用ExclRate +「」 – TaW

+0

對不起。這是以字符串形式工作的行:label60.Text = Properties.Settings.Default.PriorExclTimer;看着這個謝謝你的回覆 –

回答

1

在C#中,您不能直接將int指定爲string。它必須經歷轉換(將字符串解析爲整數,或者從整數中獲取一個字符串)。

正如你所說,最好將整數轉換爲字符串以便顯示。標籤不能直接顯示整數,因此您總是需要將其轉換,或者如果它不夠,請編寫一些包裝類。

請注意,ToString()是文化特定的,即它將使用當前線索中的文化。它可能會或可能不是你想要的。如果你需要InvariantCulture,你可以使用ToString(CultureInfo.InvariantCulture)

P.S.正如在評論中提到的那樣,您可以使用各種技巧,如ExclRate + ""或C#6 ${ExclRate},但它們基本上都是將整數轉換爲字符串。我想他們都在裏面叫ToString()

0

這個工作對我來說:

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

關於這一主題的見解非常感謝。我會處理數據,並從字符串我工作的項目一個好一點......以上

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

代碼會給你異常,如果PriorExclTimer爲null或空。因此,您最好使用int.TryParse將其分配給int。不是在這種情況下,但ToString不處理null的情況下,它給出例外。所以你應該嘗試Convert.ToString。 雖然做字符串操作,你必須照顧文化和案例(字符串大小寫敏感或不敏感)