这两个函数都重写原始值吗?以一种方式比另一种方式有任何好处吗?
SaveFileDialog saveserver = new SaveFileDialog();
saveserver.FileName = "ARKServerStart.bat";
saveserver.Filter = "ARKServerStart (*.bat)|*.bat";
saveserver.InitialDirectory = ArkServer.FileName;
if (saveserver.ShowDialog() == DialogResult.OK)
{
StreamWriter SW = new StreamWriter(saveserver.FileName);
string runit = string.Format("start ShooterGameServer.exe TheIsland?QueryPort=27015?SessionName={0}?MaxPlayers={3}?listen?ServerPassword={1}?ServerAdminPassword={2} -nosteamclient -game -server -log", ServName.Text, ServPass.Text, AdmnPass.Text, MPlayers.Value.ToString(), ArkProfile.FileName.Replace("ShooterGameServer.exe", ""));
SW.WriteLine(runit);
SW.Close();
var dir = new ProcessStartInfo();
Path.GetDirectoryName(saveserver.FileName);
dir.WorkingDirectory = Path.GetDirectoryName(saveserver.FileName);
dir.FileName = saveserver.FileName;
dir.CreateNoWindow = true;
Process pro = Process.Start(dir);
Clipboard.SetText(saveserver.FileName);
}
答案 0 :(得分:0)
在这种情况下,引用是优越的,因为你不能犯指针的所有常见错误 - 引用必须始终指向它们引用的对象的类型,并且不能是NULL
或nullptr
,这会自动消除处理指针的许多麻烦。
有些编译器可以使用指针来实现引用,但两者确实有不同的语义。这些语义在不同情况下很有用。在这里,不必记住取消引用指针就更容易了 - 它是您在编码时不会绊倒的另一个令人讨厌的抽象层。在其他情况下,能够拥有NULL
指针或引用可能是有利的。