TryFind的语法是否更紧凑?

时间:2011-06-04 01:24:10

标签: c# f# coding-style

我正在使用Microsoft.FSharp.Core.Collections.FSharpMap 而且经常要写:

var oo = world.Entity.TryFind(t);
var entity = oo == null ? null : oo.Value;

类似。有关更好风格的建议吗?

1 个答案:

答案 0 :(得分:6)

你可以写一个Extension Method

public static T ValueOrDefault<T>(this FSharpOption<T> option)
{
    return option == null ? default(T) : option.Value;
}

用法:

var entity = world.Entity.TryFind(t).ValueOrDefault();