visual validar studio significa sensitive sensible que primera minusculas mayusculas mayuscula letra insensitive convertir c# case-sensitive

c# - validar - ¿Por qué es C sensible a mayúsculas y minúsculas?



que significa sensible a mayusculas y minusculas (14)

¿Qué razonamiento existe detrás de hacer que C # sea sensible a mayúsculas?

Estoy considerando cambiar de VB.NET para aprovechar algunas características del lenguaje (CCR y rendimiento), y entender el razonamiento detrás de esta diferencia puede facilitar la transición.

[ACTUALIZAR] Bueno, me di la zambullida hace tres días. Aprender C # no ha sido particularmente difícil, sin embargo, apenas podía recordar mis días de C ++ a finales de los 90.

¿Es la sensibilidad de la caja molesta? no tanto como pensé ... además estoy descubriendo que en realidad es ventajoso. En realidad, estoy muy contento con el CCR como modelo de programación de coordinación asincrónica. Si tuviera más tiempo en el proyecto actual, transferiría la base de código a C # para aprovechar al máximo. Sin embargo, no sería justo para mi cliente.

¡Evaluando mi proyecto actual ahora y veo hilos de bloqueo EN TODAS PARTES! AHhhh !!!

[ACTUALIZAR]

Bueno, he estado programando en C # durante casi un año. Realmente estoy disfrutando el idioma, y ​​realmente odio odiar a VB (¡especialmente cuando es inevitable!)

Y la cosa de la sensibilidad del caso? ni siquiera un problema


C # distingue entre mayúsculas y minúsculas, ya que toma los lenguajes de estilo C que son sensibles a mayúsculas y minúsculas. Esto es de la memoria aquí hay un enlace de MSDN que no funciona para mí en este momento no puedo verificar.

También me gustaría señalar que este es un caso de uso muy válido:

public class Child { private Person parent; public Person Parent { get { return parent;} } }

Sí, puede evitar esto usando prefijos en las variables de sus miembros, pero a algunas personas no les gusta hacer eso.


C # hereda la distinción entre mayúsculas y minúsculas de C y Java, que intenta imitar para facilitar que los desarrolladores se muevan a C #

Pudo haber habido algunas buenas razones para hacer que C sea sensible a las mayúsculas y minúsculas cuando se creó hace tres décadas, pero no parece haber ningún registro sobre por qué. Jeff Atwood escribió un buen artículo defendiendo que la sensibilidad del caso ya no tenga sentido .


Considere los nombres de las variables en el siguiente pseudocódigo:

class Foo extends Object { ... } ... foo = new Foo();

Tener sensibilidad de mayúsculas y minúsculas permite convenciones que usan mayúsculas y minúsculas para separar nombres de clases e instancias; tales convenciones no son nada infrecuentes en el mundo del desarrollo.


Creo que el hecho de que el caso pueda transmitir información es una muy buena razón. Por ejemplo, por convención, los nombres de clase, los métodos públicos y las propiedades comienzan con una letra mayúscula por convención. Y a la inversa, los campos y las variables locales comienzan con una letra minúscula.

Después de usar el lenguaje durante años, he llegado a disfrutar realmente de esto, el código es mucho más fácil de leer cuando se puede leer información simplemente desde el recuadro de las palabras.

Y es por eso que la gente hace esto a veces, y puede tener sentido:

Foo foo = new Foo();

Lo hago todo el tiempo, es muy útil. Si lo piensas en una situación más útil como esta:

Image image = Image.LoadFrom(path);

Simplemente tiene sentido a veces llamar a la instancia lo mismo que el nombre de la clase, y la única manera de distinguirlos es la carcasa. En C ++ la sensibilidad a mayúsculas y minúsculas se vuelve aún más útil, pero esa es otra historia. Puedo elaborar si estás interesado.


Creo que tener identificadores de mayúsculas y minúsculas puede hacer que el código sea más legible, mediante el uso de convenciones de nomenclatura, e incluso sin convenciones de nomenclatura, la coherencia impuesta por la distinción entre mayúsculas y minúsculas garantiza que la misma entidad siempre se escriba de la misma manera.


El análisis también es un poco más fácil para los idiomas que distinguen entre mayúsculas y minúsculas. Mientras no haya una buena razón para elegir el modo que no distingue entre mayúsculas y minúsculas, ¿para qué molestarse?


Fue solo una cuestión de gusto en el equipo de diseño de C # langauge. Estoy dispuesto a apostar que fue por comonality con otros lenguajes de la familia C. Sin embargo, conduce a algunas malas prácticas de programación, como un campo privado y su propiedad asociada que difieren solo en el caso de la primera letra.

EDITAR:

¿Por qué esto podría ser considerado malo?

class SomeClass { private int someField; public int SomeField { get { return SomeField; } // now we have recursion where its not wanted and its // difficult for the eye to pick out and results in a // Exception. } }

Prefijo campos privados con un _ o un m podría hacer que sea más fácil de detectar. No es una gran cosa y, personalmente, sigo haciendo exactamente lo que acabo de decir que es malo (¡así que susténtame!).


Nombrando Los nombres son difíciles de encontrar y no desea tener que crear un nuevo nombre cuando se habla de algo similar o tiene que usar alguna notación para distinguirlos.

Dichos escenarios son propiedades para campos o argumentos en el constructor que está a punto de asignar a los campos.


Probablemente copiado de C, C ++, Java, etc. o puede mantenerse igual a propósito para que sea similar a lo que tienen otros lenguajes.


Probablemente pensaban "no queremos que las personas usen SoMeVaRiAbLe en un lugar y se muestren en otro.


Supongo que te gustaría ver código como:

SomeField=28; someField++; somefield++; SOMEFIELD++;

compilado como si SomeField en cualquier variación de envoltura es la misma variable.

Personalmente, creo que es una mala idea. Alienta la pereza y / o descuido. ¿Por qué molestarse en colocar adecuadamente la cosa cuando de todos modos no importa? Bueno, mientras estamos en ello, tal vez el compilador debería permitir errores ortográficos, como SoemField++ ?


Usted está viendo esto de una manera muy limitada, desde su punto de vista. Los diseñadores de idiomas deben tener en cuenta otro conjunto de consideraciones: razones culturales, compatibilidad con otros lenguajes, prácticas de codificación comunes, etc.

Todos los idiomas modernos usan mayúsculas y minúsculas: ¿cuáles no?

Como alguien que usó BASIC durante varios años, me cansé de los desarrolladores que utilizan casos diferentes para la misma variable. Este tipo de cosas es muy tedioso de mirar y fomenta la programación descuidada. Si no puede molestarse en resolver el caso correctamente, ¿qué otra cosa no puede molestarse en hacer?


De .NET Framework Developer''s Guidebook Convenciones de mayúsculas , mayúsculas y minúsculas:

Las pautas de capitalización existen únicamente para hacer que los identificadores sean más fáciles de leer y reconocer. La carcasa no se puede utilizar como un medio para evitar colisiones de nombres entre los elementos de la biblioteca.

No asuma que todos los lenguajes de programación distinguen entre mayúsculas y minúsculas. Ellos no son. Los nombres no pueden diferir por caso solo.


Mi mejor estimación sobre por qué es sensible a las mayúsculas y minúsculas sería porque Unix distingue entre mayúsculas y minúsculas. Dennis Ritchie, el padre de C también co-escribió Unix, por lo que tiene sentido que el lenguaje que escribió coincida con el entorno disponible en ese momento. C # acaba de heredar esto de su antecesor. Creo que esta fue una buena decisión de parte de Microsoft, ya que las rutas de Windows no distinguen entre mayúsculas y minúsculas.