Tengo una clase estática con varios métodos de extensión para varios tipos. ¿Hay alguna utilidad o la forma de dividirla en varias clases? Clase separada para cada tipo de objetivo.¿Cómo agrupar los métodos de extensión?
Respuesta
Poner sus diversos métodos de extensión en diferentes clases es una buena idea desde una perspectiva de "código limpio", pero la "agrupación" principal de los métodos de extensión ocurre colocándolos en diferentes espacios de nombres. La razón es que los métodos de extensión están disponibles al "usar" el espacio de nombre apropiado.
Poner diferentes grupos de métodos de extensión en diferentes espacios de nombres es una buena idea ya que podría tener métodos de extensión colisionantes. Si eso sucede, y cada grupo lógico de métodos de extensión está en un espacio de nombres detallado, debería poder resolver el conflicto simplemente eliminando una de las declaraciones using
, dejando así la declaración using
que contiene el método de extensión que realmente desea.
Aquí hay un enlace a algunas de las mejores prácticas:
Gracias por la respuesta. – Peter17
+1 buen enlace, gracias! –
tengo otra forma de agrupación:
public class StringComplexManager
{
public StringComplexManager(String value)
{
Value = value;
}
public String Value { get; set; }
}
public static class StringComplexExtensions
{
public static StringComplexManager ComplexOperations(this String value)
{
return new StringComplexManager(value);
}
public static int GetDoubleLength(this StringComplexManager stringComplexManager)
{
return stringComplexManager.Value.Length * 2;
}
}
uso es:
string a = "Hello"
a.ComplexOperations().GetDoubleLength()
ComplexOperation()
grupos los métodos de extensión y estrecha el intellisense alcance, de modo que si originalmente tenía cientos de métodos de extensión de cadena, ahora solo verá uno en intellisense.
- 1. ¿Los métodos LINQ son métodos de extensión?
- 2. ¿Cómo se compilan los métodos de extensión?
- 3. Cómo se conectan los métodos de extensión
- 4. Reemplazando los métodos de extensión
- 5. ¿Cuándo deberían evitarse los métodos de extensión?
- 6. ¿Los métodos de extensión ocultan las dependencias?
- 7. ¿Qué son los métodos de extensión?
- 8. ¿Podría abstraer sus consultas LINQ en los métodos de extensión
- 9. ¿Cómo extiendo una clase con los métodos de extensión C#?
- 10. ¿Cómo puedo encontrar todos los métodos de extensión en solución?
- 11. ¿Métodos de extensión virtual?
- 12. métodos de extensión estáticas
- 13. Organización de métodos de extensión
- 14. equivalente de Scala de los métodos de extensión de C#?
- 15. múltiples cláusulas WHERE con los métodos de extensión de LINQ
- 16. Métodos oficiales de extensión LINQ
- 17. C# métodos de extensión ambiguos
- 18. Métodos de extensión en Python
- 19. Métodos de extensión de enumeración
- 20. Mejores prácticas: C# Espacio de nombres de métodos de extensión y promoción de métodos de extensión
- 21. Los métodos estáticos de extensión de apoyo limitaciones miembros
- 22. Uso de IoC en los métodos de extensión
- 23. Métodos de extensión no reconocidos
- 24. métodos de extensión en T4
- 25. ¿Los métodos de extensión Can C# acceden a variables privadas?
- 26. Diversión con LINQ expresiones en los métodos de extensión
- 27. Llamada a método ambigiuous entre los métodos de extensión
- 28. ¿Deben los métodos de extensión tener un prefijo?
- 29. Por favor, explique los métodos de extensión para mí
- 30. VS Intellisense: ¿puedes ocultar los métodos de extensión?
Hola, yo definiría una clase diferente, llamada como tipoextensiones para cada tipo que extienda, mantendría todas estas clases en el mismo archivo y espacio de nombres si no son demasiadas. –