gpt4 book ai didi

c# - 是否有任何语法可以缩短新 C# 中对象的设置变量

转载 作者:行者123 更新时间:2023-12-02 15:48:44 27 4
gpt4 key购买 nike

我很好奇是否有任何方法可以缩短这段代码,或者将它放在一行/语句中,

        var terraformProcess = new Process();
terraformProcess.StartInfo.FileName = "terraform";
terraformProcess.StartInfo.UseShellExecute = false;
terraformProcess.StartInfo.WorkingDirectory = Path.Combine(repoPath,"terraform");
Console.WriteLine(terraformProcess.StartInfo.WorkingDirectory);
terraformProcess.StartInfo.RedirectStandardOutput = true;
terraformProcess.StartInfo.Arguments = "init";
terraformProcess.Start();
terraformProcess.WaitForExit();

terraformProcess.StartInfo.Arguments =
$"destroy --var-file=current.tfvars -auto-approve -var vcd_user={_terraformConf.vdcUsername} -var vcd_pass={CryptoServices.Decode(_terraformConf.encryptedVdcPass)} -no-color";
terraformProcess.Start();
var output = terraformProcess.StandardOutput.ReadToEnd();
terraformProcess.WaitForExit();

我试过:

var startInfo = new StartInfo {
FileName = "terraform",
WorkingDirectory = Path.Combine(repoPath,"terraform");
RedirectStandardOutput = true;
Arguments = "init";
};

然后将其分配给 Process.StartInfo,但看起来 Process.StartInfo 上只有 getter。

我只是好奇是否有更短的方法来做到这一点,而不需要重复那么多行。

最佳答案

您可以在多个级别上使用对象初始化语法,即

var terraformProcess = new Process
{
StartInfo =
{
FileName = "terraform",
UseShellExecute = true,
// etc ...
}
};

您可以阅读更多关于对象和集合初始值设定项的信息 here , 这是一个非常方便的语法糖

关于c# - 是否有任何语法可以缩短新 C# 中对象的设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73275828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com