2015-09-19 48 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());