我正在创建一个程序,该程序会发送一封电子邮件,其中包含程序预先从用户处收集的一些数据。
目前,我的问题是当我使用时:
string subject = "test {0}", test2;
我收到的电子邮件是此输出:
测试{0}
而不是预期的输出:
“test test2”。
我有什么遗失的吗?
我刚测试了其他东西,通过删除文本并仅使用变量作为主题,工作正常。但为什么text / string +变量不起作用?
Vs表示我添加的变量test2
已经定义。
完整代码:
string test2 = "test";
string subject = "test {0}", test2;
string body = "test1";
答案 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