Trabajo en el desarrollo de una API externa. He añadido un método para mi interfaz pública:¿Cambiar el nombre solo por nulo?
public void AddMode(TypeA mode);
public void AddMode(TypeB mode); // the new method, TypeB and TypeA are not related at all
Se veía bien, hasta que una prueba se supo que estaba pasando un null
. Eso confundió al compilador con una llamada ambigua. Arreglé la prueba arrojando el nulo.
Sin embargo, mi pregunta es:
- ¿Debo cambiar el nombre sólo a causa de esto?
- ¿O debería dejar que el cliente haga el reparto como lo hice yo? (si pasan nulo por cualquier razón)
¿Cuál es el mejor en este caso al diseñar las API?
Editar:
la llamada era así AddMode (nulo), no me gustan:
TypeA vl = null;
AddMode(v1); // this doesn't cause a problem
Problema similar aquí [se aprueba null] (http://stackoverflow.com/questions/719546/c-passing-null-to-overloaded-method-which-method-is-called) y se recomienda el lanzamiento (un excelente respuesta) – V4Vendetta
@MBen - Sugiero cambiar el nombre de los métodos. – adatapost
@ V4Vendetta Vi eso antes de publicar :-). Sin embargo, me pregunto por la usabilidad de la API, si dejo que el cliente caiga en esto. No veo por qué llamarían a esos métodos con nulo, pero quién sabe :-) – MBen