visual propiedades metodos extension extended custom clases c# visual-studio-2008 string extension-methods intellisense

c# - propiedades - ¿Por qué VS 2008 no muestra los métodos de extensión en Intellisense para la clase String?



metodos en visual basic (3)

Dado que String implementa IEnumerable<char> , esperaba ver los métodos de extensión Enumerable en Intellisense, por ejemplo, al escribir el período en

String s = "asdf"; s.

Esperaba ver. .Select<char>(...) , .ToList<char>() , etc. Me sorprendió ver que los métodos de extensión funcionan en la clase de cadena, simplemente no lo hacen aparecer en Intellisense. ¿Alguien sabe a que se debe esto? Esto puede estar relacionado con esta pregunta.


Es por diseño explícito. El problema es que si bien String definitivamente implementa IEnumerable<T> , la mayoría de la gente no piensa en eso, o lo que es más importante, lo usa de esa manera.

String tiene una cantidad bastante pequeña de métodos. Inicialmente no filtramos los métodos de extensión de String y el resultado fue una gran cantidad de comentarios negativos. Casi triplicó el número de métodos a veces con las importaciones correctas. Con todos los métodos de extensión mostrados, las personas a menudo no podían ver el método String que estaban buscando en el ruido.

String es un ... tipo simple y es mejor verlo de esa manera :)

Todavía es completamente posible llamar a un método de extensión en cadena. Es probable que no se muestre en intellisense.

EDITAR: Cadena en realidad tiene bastantes métodos. Pero debido a que muchos de ellos son sobrecargas, colapsan en intellisense.


Debería.

For example you can write it public static string myExtensionMethod(this String yuppi){ }

Entonces se supone que está allí.


Para información, esto ha cambiado en VS2010 (en beta 2, al menos). Parece que este filtrado ha sido eliminado (presumiblemente causó demasiada confusión), y los métodos ahora son visibles, junto con el glifo de método de extensión.