La razón por la que estoy preguntando es porque escribí un método de extensión para usar en Silverlight solo para descubrir esa característica que mágicamente comenzó a funcionar para la luz plateada.
hay un método public bool string.Contains(string)
para todas las versiones de .NET de 2,0 en adelante (2.0, 3.0, 3.5, 4.0, SL 3/4 WP 7.0/7.1).
Es interesante observar que la versión SL solo aparece en la lista de SL 3/4 - ¿es posible actualizar desde una solución 2.0? Eso podría luego dar cuenta de ello. De lo contrario, un método definido siempre tiene prioridad sobre un método de extensión, por lo que nunca debe llamarse su método de extensión (podemos excluir .NET 1.1 ya que el compilador C# 1.2 no incluye métodos de extensión).
para .NET 2.0 documentos MSDN esto como:
Este método realiza una palabra (mayúsculas y minúsculas y la cultura y minúsculas) búsqueda usando la cultura actual. La búsqueda comienza en la posición del primer carácter de esta secuencia y continúa hasta la última posición del carácter.
Todas las demás versiones (incluyendo Silverlight) se enumeran como:
Este método realiza un ordinal (mayúsculas y minúsculas y cultura insensible a) comparación. La búsqueda comienza en la posición del primer carácter de esta secuencia y continúa hasta la última posición del carácter.
Si usted está viendo otro modo (por favor agudos-cheque), que podría ser un error de marco ... pero me siento cautelosamente esperando una explicación más sencilla.
estoy irritado sobre todo que hay diferencias entre locos en Sistema digamos: c: \ Archivos de programa (x86) \ Referencia Asambleas \ Microsoft \ Framework \ Silverlight \ v4.0 \ system.dll C: \ Program archivos (x86) \ Referencia Asambleas \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.dll ambos son del sistema y System.String.Contains() actúa diferente, es más una molestia que cualquier otra cosa pero sigue corriendo en pequeñas cosas como esta. –
Acabo de probar eso en un proyecto estándar de Silverlight; devolvió 'falso' como se esperaba –