我有一个这样的功能:

 public static Mesh MeshFromPolylines(List<Polyline> nurbsCurves, int type, bool weld)
{
..code..
}


然后我有超载:

 public static Mesh MeshFromPolylines(Polyline[] nurbsCurves, int type, bool weld)
{
..code..
}


有没有写第二种功能而无需复制粘贴相同代码的方法?
这两个函数内部都有完全相同的代码。唯一的区别是输入List<Polyline>Polyline[]

最佳答案

一种具有签名的方法将起作用:

public static Mesh MeshFromPolylines(IEnumerable<Polyline> nurbsCurves, int type, bool weld)
{
}


它将接受数组和列表。或者至少可以在两个方法中都调用此方法(如果由于某种原因需要使用具有指定参数类型的两个方法)。

但是,您可能必须修改方法主体,例如,要通过索引获取元素,您需要执行nurbsCurves.ElementAt(i)而不是nurbsCurves[i]

关于c# - 通过使用不同类型的重载功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44874919/

10-09 22:21