[英]C# creating a method valid only for arrays of my class
假設我有一個foo
類和另一個bar
。 我想在foo
類中創建一個方法,將foo
數組轉換為bar
對象(不是數組),如下所示:
foo[] v1 = new foo[] { };
bar v2 = v1.ToBar();
我該怎么做?
您可以使用擴展方法 :
擴展方法使您可以將方法“添加”到現有類型,而無需創建新的派生類型,重新編譯或修改原始類型。 擴展方法是一種特殊的靜態方法,但是它們的調用就像是擴展類型上的實例方法一樣。 對於用C#和Visual Basic編寫的客戶端代碼,在調用擴展方法和在類型中實際定義的方法之間沒有明顯的區別。
您只需要一個公共靜態類來保存您的擴展方法。 請注意this
第一個方法參數之前-這是什么使得它的擴展方法。
public static class FooExtensions
{
public static Bar ToBar(this Foo[] source)
{
return new Bar(); // replace with correct logic;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.