J'ai deux fonctions avec le même nom et la principale différence est simplement le type de retour différent. Comment pourrais-je surcharger la fonction afin d'utiliser le même nom parce que parfois j'ai besoin des tableaux de Point3D ou Point3f, et les noms des fonctions suivantes donne l'erreur pour être le même:Fonction de surcharge avec type de retour différent
public static Point3d[] GetNGonCenters(this Mesh mesh)
{
Point3d[] centers = new Point3d[mesh.Ngons.Count];
for (int i = 0; i < mesh.Ngons.Count; i++)
centers[i] = mesh.Ngons.GetNgonCenter(i);
return centers;
}
public static Point3f[] GetNGonCenters(this Mesh mesh)
{
Point3f[] centers = new Point3f[mesh.Ngons.Count];
for (int i = 0; i < mesh.Ngons.Count; i++)
centers[i] = (Point3f)mesh.Ngons.GetNgonCenter(i);
return centers;
}
Vous ne pouvez surcharge sur des arguments de méthode, et non sur les types de retour. – Phylogenesis
Vous ne pouvez pas surcharger une fonction sur le type de retour – ali
L'autre option crée une classe statique différente pour la méthode d'extension. La surcharge ne serait pas un problème si elles sont dans des classes séparées – RobPethi