所以,我真的很喜欢使用扩展方法……也许有点太多了。所以,我要问一下我最近的享受,以确保我不会走得太远。
场景是我们有一个Guid?
传入的变量。如果变量为 null 或Guid.Empty
,那么我们想要使用不同的 Guid。所以,我写了一个扩展方法让它读起来像英语:
internal static Guid OrIfEmpty(this Guid? guid, Guid other)
{
if (!guid.HasValue || guid.Value == Guid.Empty)
{
return other;
}
return guid.Value;
}
这自动意味着“null this”不会引发异常。例如,这将起作用:
((Guid?)null).OrIfEmpty(other);
如果不使用扩展方法,这是不可能的,而且在我看来可能会产生误导。但是,它是如此简洁和干净!所以你怎么看?这是一件可以接受的事情吗,还是会让其他程序员感到困惑?
此外,我确信在其他情况下我会做这样的事情并检查this
null,但这是我现在拥有的最好的例子。
注意:我并不是真的Guid?
特别询问这项业务。我在询问更多关于实现的整体模式(有一个this
可以的扩展方法null
)