だから、私は拡張メソッドを使うのが本当に楽しいです..多分少し多すぎます。それで、私は私が行き過ぎないことを確実にするために私の最新の楽しみについて尋ねるつもりです。
シナリオは、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;
}
これは、「nullthis」が例外をスローしないことを自動的に意味します。たとえば、これは機能します。
((Guid?)null).OrIfEmpty(other);
これは拡張メソッドを使用しないと不可能であり、私の意見ではかなり誤解を招く可能性があります。しかし、それはとても簡潔できれいです!それで、あなたはどう思いますか?これは許容できることですか、それとも他のプログラマーにとって混乱しすぎる可能性がありますか?
また、私がこのようなことをしthis
てnullをチェックする他のシナリオもあると確信していますが、これは私が今持っている最良の例です。
注:私はGuid?
特にこのビジネスについてはあまり質問していません。実装されている全体的なパターンについてもっと質問しています(可能な場合は拡張メソッドがありthis
ますnull
)