2015-09-19 54 views
0

我需要能夠從變量中獲取文本框字符串並將變量放入字符串中。帶變量的TextBox字符串

textBoxEmailTemplateUT.Text = "The documents are as follows: FileNameHere ► {TotalPanelCountUtah} ► {TotalkWUtah} ► ElectricalUsageOffsetHere InformationAboutTheSystemHere If There are any questions or concerns, please reply to this email. Regards YourNameHere"); 

這是假設有人在其他代碼(不顯示)中做了一些計算後,這是一種電子郵件模板。 {TotalPanelCountUtah}{TotalkWUtah}都是我需要放入文本框中的字符串的雙重變量。一些援助將不勝感激。

+1

看一看作爲字符串格式化 - 在這裏,例如:https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx。你的字符串有名字佔位符和string.Format喜歡數字。 – Clay

+0

如果您想要更好地控制格式並計劃發送長消息,尤其是如果您的代碼將被其他人使用,請考慮編寫一個專用的文本生成器方法(使用'StringBuilder')。我發現,用無窮無盡的變量來解析冗長的代碼行有時非常痛苦,而且有時候會帶有含糊不清的含義。 –

回答

0

使用C#6,你可以用string interpolation,因爲這樣的:

string txt = $"The values are: {value1}, {value2}"; 

的語法要求你把$字符串之前和括號({})內包圍任何變量。

沒有字符串插值(前C#6),你可以使用:

string txt = String.Format("The values are: {0}, {1}", value1, value2); 

的這段代碼不一樣的第一個。 String.Format將格式化一個字符串,用大括號中的每個值替換其相應的參數。

如果:

double value1 = 0.5; 
double value2 = 1.5; 

然後,對於這兩個片段(內插和string.Format)的:如粘土的評論使用提到

txt == "The values are: 0.5, 1.5"` 
+0

我很感謝大家的迴應。 $方法最適合我要用這個代碼做的事情。我可以理解String.Format和.Replace方法都是非常有用的。我將不得不在以後嘗試使用這些。現在,這就得到了我爲我的工作正常工作而建立的計算器。 再次感謝大家出來幫忙! – Sero

0

string.Format

textBoxEmailTemplateUT.Text = string.Format("The documents are as follows: FileNameHere ► {0} ► {1} ► ElectricalUsageOffsetHere InformationAboutTheSystemHere If There are any questions or concerns, please reply to this email. Regards YourNameHere",TotalPanelCountUtah, TotalkWUtah); 

其中TotalPanelCountUtah TotalPanelCountUtah是雙重型

0

string.Format通常是首選,但我包括第二種方法,使用下面的string.replace。在顯示值之前舍入值可能也是一個好主意。

double val1 = 1.2345; 
double val2 = 8.7654; 

// recommended 
textBox1.Text = string.Format(
    "Value one is {0:0.00}, and value two is {1:0.00}.", 
    val1, val2); 

// also an option 
textBox1.Text = "Value one is val1, and value two is val2." 
    .Replace("val1", Math.Round(val1, 2).ToString()) 
    .Replace("val2", Math.Round(val2, 2).ToString());