gpt4 book ai didi

C# 可选输出参数

转载 作者:行者123 更新时间:2023-11-30 20:49:20 24 4
gpt4 key购买 nike

有什么方法可以使方法的输出参数可选?我有一个方法需要几个参数大部分时间返回 null,但有时它们会有一个值。我试图找出是否有比先将值设置为 null 或在 if/else 之后将它们设置为 null 更好的方法来完成此操作。这可能是唯一的方法,但如果有可选的输出参数或类似的东西就更好了。这是代码:

    private static void GetInitInfo(string initLine, string ncPointType, out double? relinquishDefault, out bool? ignoreRelinquishDefault, out bool? closedForStart, out bool? adjustDisabled)
{
relinquishDefault = null;
ignoreRelinquishDefault = null;
closedForStart = null;
adjustDisabled = null;

switch (ncPointType)
{
case "MSD":
adjustDisabled = LastToken<bool?>(initLine);
break;
case "BO":
relinquishDefault = SecondToken<double>(initLine);
closedForStart = ThirdToken<bool?>(initLine);
ignoreRelinquishDefault = !ForthToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
break;
case "MSO":
closedForStart = SecondToken<bool?>(initLine);
relinquishDefault = ThirdToken<double>(initLine);
ignoreRelinquishDefault = !ForthToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
break;
case "AD":
relinquishDefault = ThirdToken<double>(initLine);
ignoreRelinquishDefault = false;
break;
case "BD":
relinquishDefault = SecondToken<double>(initLine);
adjustDisabled = LastToken<bool?>(initLine);
ignoreRelinquishDefault = false;
break;
case "AOS":
relinquishDefault = FirstToken<double>(initLine);
ignoreRelinquishDefault = !ThirdToken<bool?>(initLine);//ignoreRelDef would be reverse of use initial value
break;
}
}

最佳答案

根据 C# 4.0 规范:第 21.1 节,这是不允许的。

解决方法是使用另一个没有 out 或 ref 参数的方法重载。

关于C# 可选输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23793972/

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