Articles of lenguaje diseño

En C / C ++, ¿por qué el do while (expresión); necesito un semi colon?

Mi suposición es que simplemente hizo que el análisis sintáctico sea más fácil, pero no puedo ver exactamente por qué. Entonces, qué tiene esto … do { some stuff } while(test); more stuff eso es mejor que … do { some stuff } while(test) more stuff

¿Qué significa DIM en Visual Basic y BASIC?

¿Qué significa DIM en Visual Basic?

¿Por qué C ++ necesita un archivo de encabezado separado?

Nunca entendí realmente por qué C ++ necesita un archivo de encabezado separado con las mismas funciones que en el archivo .cpp. Hace que crear clases y refactorizarlas sea muy difícil y agrega archivos innecesarios al proyecto. Y luego está el problema de tener que incluir archivos de encabezado, pero tener que comprobar explícitamente si […]

¿Por qué la última parte de un nombre de método de Objective-C toma un argumento (cuando hay más de una parte)?

En Objective-C, no puede declarar nombres de método donde el último componente no toma un argumento. Por ejemplo, lo siguiente es ilegal. -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; ¿Por qué Objective-C fue diseñado de esta manera? ¿Fue solo un artefacto de Smalltalk que nadie vio la necesidad de deshacerse de él? Esta limitación tiene sentido en Smalltalk, […]

¿Por qué agregarle null a una cadena es legal?

El artículo de MSDN sobre Conceptos básicos de cadenas muestra esto: string str = “hello”; string nullStr = null; string emptyStr = “”; string tempStr = str + nullStr; // tempStr = “hello” bool b = (emptyStr == nullStr);// b = false; string newStr = emptyStr + nullStr; // creates a new empty string int […]

¿Por qué los tipos de valores se almacenan en Stacks?

¿Por qué C # (.Net) prefiere la stack para almacenar tipos de valores? ¿Cuál es la razón principal detrás de este diseño? ¿Es porque las operaciones de lectura / escritura en la stack aprovechan mejor el procesador de la máquina? Además, tal vez puedas justificar por qué otros no?

¿Por qué las expresiones vacías son legales en C / C ++?

int main() { int var = 0;; // Typo which compiles just fine }

Métodos generics de Java en clases de generics

Si crea una clase genérica en Java (la clase tiene parámetros de tipo genérico), ¿puede usar métodos generics (el método toma los parámetros de tipo genérico)? Considere el siguiente ejemplo: public class MyClass { public K doSomething(K k){ return k; } } public class MyGenericClass { public K doSomething(K k){ return k; } public List […]

¿Por qué los parámetros de const no están permitidos en C #?

Parece extraño especialmente para los desarrolladores de C ++. En C ++ solíamos marcar un parámetro como const para asegurarnos de que su estado no cambiará en el método. También existen otros motivos específicos de C ++, como pasar const ref para pasar por ref y asegurarse de que no se cambie el estado. Pero […]

¿Por qué Array no es un tipo genérico?

Array está declarado como el siguiente: public abstract class Array : ICloneable, IList, ICollection, IEnumerable { Me pregunto por qué no es así: public partial class Array : ICloneable, IList, ICollection, IEnumerable { ¿Cuál sería el problema si se declarase un tipo genérico? Si fuera un tipo genérico, ¿aún necesitaremos el genérico? Y si lo […]