Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Este contenido se reimprime con permiso de Pearson Education, Inc. de Directrices de diseño de frameworks: Convenciones, expresiones y patrones para bibliotecas reutilizables de .NET, 2ª edición. Esa edición fue publicada en 2008, y el libro ha sido totalmente revisado en la tercera edición. Parte de la información de esta página puede estar obsoleta.
La sobrecarga de miembros significa crear dos o más miembros en el mismo tipo que solo difieren en el número o el tipo de parámetros, pero tienen el mismo nombre. Por ejemplo, en lo siguiente, el WriteLine método se sobrecarga:
public static class Console {
public void WriteLine();
public void WriteLine(string value);
public void WriteLine(bool value);
...
}
Dado que solo los métodos, los constructores y las propiedades indexadas pueden tener parámetros, solo se pueden sobrecargar esos miembros.
La sobrecarga es una de las técnicas más importantes para mejorar la facilidad de uso, la productividad y la legibilidad de las bibliotecas reutilizables. La sobrecarga en el número de parámetros permite proporcionar versiones más sencillas de constructores y métodos. La sobrecarga en el tipo de parámetro permite usar el mismo nombre de miembro para los miembros que realizan operaciones idénticas en un conjunto seleccionado de tipos diferentes.
✔️ DEBE intentar usar nombres de parámetro descriptivos para indicar el valor predeterminado usado por las sobrecargas más cortas.
❌ EVITE variar arbitrariamente los nombres de parámetro en sobrecargas. Si un parámetro de una sobrecarga representa la misma entrada que un parámetro en otra sobrecarga, los parámetros deben tener el mismo nombre.
❌ EVITE ser incoherente en el orden de los parámetros en los miembros sobrecargados. Los parámetros con el mismo nombre deben aparecer en la misma posición en todas las sobrecargas.
✔️ DEBE convertir en virtual solo la sobrecarga más larga (si se requiere extensibilidad). Las sobrecargas más cortas simplemente deben llamar a través de una sobrecarga más larga.
❌ NO utilice ref ni out modificadores para sobrecargar miembros.
Algunos lenguajes no pueden resolver llamadas a sobrecargas como esta. Además, estas sobrecargas suelen tener una semántica completamente diferente y probablemente no deben ser sobrecargas, sino dos métodos independientes en su lugar.
❌ NO tenga sobrecargas con parámetros en la misma posición y tipos similares, pero con una semántica diferente.
✔️ DEBE permitir que null se pase para los argumentos opcionales.
✔️ DEBE usar la sobrecarga de miembros en lugar de definir miembros con argumentos predeterminados.
Los argumentos predeterminados no son compatibles con CLS.
© Partes 2005, 2009 de Microsoft Corporation. Todos los derechos reservados.
Reimpreso con permiso de Pearson Education, Inc. de Framework Design Guidelines: Convenciones, Idiomas y Patrones para Bibliotecas .NET Reusables, 2ª Edición por Krzysztof Cwalina y Brad Abrams, publicado el 22 de octubre de 2008 por Addison-Wesley Professional como parte de la Serie Desarrollo de Microsoft Windows.