C# C语言中if到三值运算符的转换#

C# C语言中if到三值运算符的转换#,c#,.net,C#,.net,如何将这个简单的if语句转换为:?C#中的(三元)运算符 您可以在成功时将a的值赋回自身,也可以使用单独的临时变量(我更喜欢后者): 案例:“金额”: a=十进制的三倍体(fvm.Value,out var tmp)?tmp:decimal.MinValue; 打破 我个人更喜欢创建一个helper方法 public static decimal? ParseDecimal(string str) => Decimal.TryParse(str, out var tmp) ? (deci

如何将这个简单的if语句转换为:?C#中的(三元)运算符


您可以在成功时将
a
的值赋回自身,也可以使用单独的临时变量(我更喜欢后者):

案例:“金额”:
a=十进制的三倍体(fvm.Value,out var tmp)?tmp:decimal.MinValue;
打破
我个人更喜欢创建一个helper方法

public static decimal? ParseDecimal(string str) => Decimal.TryParse(str, out var tmp) ? (decimal?)tmp : null;
因为这将允许您使用空合并运算符:

a = ParceDecimal(fvm.Value) ?? decimal.MinValue
问题应该是:为什么?看起来很简单,也很容易理解。不过,我只是把所有的东西都换了新台词。
public static decimal? ParseDecimal(string str) => Decimal.TryParse(str, out var tmp) ? (decimal?)tmp : null;
a = ParceDecimal(fvm.Value) ?? decimal.MinValue