电子邮件主题=字符串主题=“测试{0}”,test2;输出:“test {0}”

时间:2018-03-20 21:31:52

标签: c# string email variables subject

我正在创建一个程序,该程序会发送一封电子邮件,其中包含程序预先从用户处收集的一些数据。

目前,我的问题是当我使用时:

string subject = "test {0}", test2;

我收到的电子邮件是此输出:

  

测试{0}

而不是预期的输出:

  

“test test2”。

我有什么遗失的吗?

我刚测试了其他东西,通过删除文本并仅使用变量作为主题,工作正常。但为什么text / string +变量不起作用?

Vs表示我添加的变量test2已经定义。

完整代码:

string test2 = "test";
string subject = "test {0}", test2;
string body = "test1";

1 个答案:

答案 0 :(得分:2)

这是因为你需要将格式化的字符串包装在String.Format()或Console.WriteLine()中;

应该是

string test2 = "test";
string subject = String.Format("test {0}", test2);
string body = "test1";

没有String.Format C#只是认为您正在定义2个单独的字符串变量。它创建了一个名为subject的变量,它等于" test {0}"还有另一个名为test2的变量,你已经在之前的行中定义过这就是为什么它会抱怨的原因。 它认为你试图说

string test2 = "test";
string subject = "test {0}";
string test2;
string body = "test1";

阅读复合格式的文档。 https://docs.microsoft.com/en-us/dotnet/standard/base-types/composite-formatting