我正在为管理笔记本电脑的个人热点开发一个应用程序 (课程的Windows)。 我在更改热点名称方面遇到了一些困难。 这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
此处,在//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
与其余的常量字符串合并。我该怎么做?
答案 0 :(得分:4)
除非我在这里遗漏了一些东西,否则在我看来,简单的字符串连接就可以了:
startInfo.Arguments = "/C netsh wlan set hostednetwork ssid=" + name;
答案 1 :(得分:2)
您可以通过多种方式创建动态字符串:
对于您的具体情况,Concatenation是最佳选择,因为您的string
非常简单。您选择此方法的原因是因为与其他方法相比,它非常轻语法清晰。
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。对于string.Format
而言,大部分只是syntactic sugar,其中下面的行在编译时变为上面的行。有细微的差别,但这些在这个帖子中并不重要。
startInfo.Arguments = $"/C netsh wlan set hostednetwork ssid={name}";
最后,如果你需要多次更改一个字符串(我通常使用5的规则 - 即字符串变化超过5次),我会使用StringBuilder
类。在许多其他应用程序中,一个很棒的应用程序将是一个长循环,它会在每次迭代时修改某个字符串。 See This Tutorial。
在这种情况下,垃圾收集器将感谢您使用StringBuilder
!