C#创建一个只对我的类数组有效的方法

时间:2016-07-17 19:45:27

标签: c# arrays

假设我有一个班级foo和另一个bar。我想在foo类中创建一个方法,将foo数组转换为bar对象(不是数组),如下所示:

foo[] v1 = new foo[] { };
bar v2 = v1.ToBar();

我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以使用Extension Method:

  

扩展方法可让您添加"现有类型的方法,无需创建新的派生类型,重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但它们被称为扩展类型的实例方法。对于用C#和Visual Basic编写的客户端代码,调用扩展方法和实际在类型中定义的方法之间没有明显区别。

您需要的只是一个公共静态类来保存您的扩展方法。请注意第一个方法参数之前的this - 这是使其成为扩展方法的原因。

public static class FooExtensions
{ 
    public static Bar ToBar(this Foo[] source)
    {
        return new Bar();  // replace with correct logic;
    }
}