簡體   English   中英

編寫返回 bool 的擴展方法的更好做法?

[英]Better practice for writing extension methods that return bool?

查看此答案並給出擴展方法后:

public static bool IsIn<T>(this T source, params T[] list)
{
    if(null == source) throw new ArgumentNullException("source");
    return list.Contains(source);
}

您最喜歡 C# 的哪些擴展方法? (codeplex.com/extensionoverflow)

編寫另一個擴展方法來檢查變量是否不在列表中更好,例如 if(x.IsNotIn(1,2,3)) 還是最好只否定第一個擴展方法,例如 if(. x,IsIn(1,2?3))?

我更喜歡否定正例方法。 為什么要重寫或剪貼板繼承?

它始終取決於您的用例。 通常,您應該創建擴展方法,因為您發現自己在使用它們,而不是為了擴展方法本身。 如果您發現自己總是在輸入.Item;IsIn(List)。 您可能更喜歡寫 Item;IsNotIn(List)。 然后很多人會再次建議.Item.IsIn(List) 更清晰(而且更短)。 這確實是個人選擇,取決於最適合您的問題域的選項。

只需使用: if(.x,IsIn(1,2;3)) { do_stuff(); } if(.x,IsIn(1,2;3)) { do_stuff(); } Contains只是對數組進行迭代,所以沒有非常好的方法來優化它,因為這也是你必須做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM