簡體   English   中英

如何對擴展方法進行分組?

[英]How to group extension methods?

我有一個靜態類,其中包含各種類型的擴展方法。 是否有任何實用程序或將其分為幾個類的方法-每個目標類型的單獨類。

從“干凈的代碼”的角度來看,將各種擴展方法放入不同的類中是一個好主意,但是擴展方法的主要“分組”是通過將它們放入不同的命名空間來實現的。 原因是可以通過“使用”適當的名稱空間來使用擴展方法。

將不同的擴展方法組放入不同的名稱空間是一個好主意,因為您可能會遇到沖突的擴展方法。 如果出現這種情況,和擴展方法,每個邏輯組是在一個細粒度的命名空間,你應該能夠通過簡單地移除的一個解決沖突using的語句,從而留下using語句包含你真正想要的擴展方法。

以下是一些最佳做法的鏈接:

http://blogs.msdn.com/b/vbteam/archive/2007/03/10/extension-methods-best-practices-extension-methods-part-6.aspx

我有另一種分組方式:

public class StringComplexManager
{
    public StringComplexManager(String value)
    {
        Value = value;
    }

    public String Value { get; set; }
}

public static class StringComplexExtensions
{
    public static StringComplexManager ComplexOperations(this String value)
    {
        return new StringComplexManager(value);
    }

    public static int GetDoubleLength(this StringComplexManager stringComplexManager)
    {
         return stringComplexManager.Value.Length * 2;
    }
}

用法是:

string a = "Hello"
a.ComplexOperations().GetDoubleLength()

ComplexOperation()對擴展方法進行分組,並縮小了智能感知的范圍,因此,如果您最初有數百種字符串擴展方法,則現在只能在智能感知中看到一個。

暫無
暫無

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

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