如何在 C# 中动态创建字符串?
How do I create a string dynamically in C#?
我正在开发用于管理笔记本电脑个人热点的应用程序
(当然 Windows)。
我在 更改热点名称 时遇到了一点困难。
这是我的代码:
//For CMD Command
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "CMD.exe";
startInfo.CreateNoWindow = true;
//Reading User Input in textBox1:
string name = textBox1.Text;
//CMD Argument:..., Which is currently written wrong to make it Easy to
//understand the problem
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid="name";
process.StartInfo = startInfo;
process.Start();
这里,在Arguments
行,语法错误。分配给 Arguments
的值应该是单个字符串。我需要将具有动态值的 name
与字符串的其余部分合并。我该怎么做?
除非我在这里遗漏了什么,否则在我看来,一个简单的字符串连接就可以做到:
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid=" + name;
创建动态字符串的方法有多种:
对于您的具体情况,Concatenation 是最佳选择,因为您的 string
非常 simple.The 您会为您的情况选择此方法的原因是因为它相比之下非常轻到其他方法并具有足够干净的语法。
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid=" + name;
对于任何更复杂的事情,string.Format
是一个受欢迎的选择。您通常会使用它来组合比您的示例更复杂的 strings
。 This tutorial 涵盖了主题。
startInfo.Arguments = string.Format("/C netsh wlan set hostednetwork ssid={0}", name);
C#6.0
的发布包括一个简洁的功能:interpolated strings. It is for the most part just for string.Format
,其中下面的行在编译时变成上面的行。有细微差别,但在本帖中并不重要。
startInfo.Arguments = $"/C netsh wlan set hostednetwork ssid={name}";
最后,如果您需要多次更改字符串(我通常使用 5 的规则 - 即字符串更改超过 5 次),我会使用 StringBuilder
class。一个伟大的应用程序,在许多其他应用程序中,将是一个长循环,每次迭代都会修改某个字符串。 See This Tutorial。
在这种情况下,垃圾收集器将感谢您使用 StringBuilder
!
我正在开发用于管理笔记本电脑个人热点的应用程序 (当然 Windows)。 我在 更改热点名称 时遇到了一点困难。 这是我的代码:
//For CMD Command
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "CMD.exe";
startInfo.CreateNoWindow = true;
//Reading User Input in textBox1:
string name = textBox1.Text;
//CMD Argument:..., Which is currently written wrong to make it Easy to
//understand the problem
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid="name";
process.StartInfo = startInfo;
process.Start();
这里,在Arguments
行,语法错误。分配给 Arguments
的值应该是单个字符串。我需要将具有动态值的 name
与字符串的其余部分合并。我该怎么做?
除非我在这里遗漏了什么,否则在我看来,一个简单的字符串连接就可以做到:
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid=" + name;
创建动态字符串的方法有多种:
对于您的具体情况,Concatenation 是最佳选择,因为您的 string
非常 simple.The 您会为您的情况选择此方法的原因是因为它相比之下非常轻到其他方法并具有足够干净的语法。
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid=" + name;
对于任何更复杂的事情,string.Format
是一个受欢迎的选择。您通常会使用它来组合比您的示例更复杂的 strings
。 This tutorial 涵盖了主题。
startInfo.Arguments = string.Format("/C netsh wlan set hostednetwork ssid={0}", name);
C#6.0
的发布包括一个简洁的功能:interpolated strings. It is for the most part just string.Format
,其中下面的行在编译时变成上面的行。有细微差别,但在本帖中并不重要。
startInfo.Arguments = $"/C netsh wlan set hostednetwork ssid={name}";
最后,如果您需要多次更改字符串(我通常使用 5 的规则 - 即字符串更改超过 5 次),我会使用 StringBuilder
class。一个伟大的应用程序,在许多其他应用程序中,将是一个长循环,每次迭代都会修改某个字符串。 See This Tutorial。
在这种情况下,垃圾收集器将感谢您使用 StringBuilder
!