Articles of lenguaje diseño

¿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 […]

¿Llamar al método varargs de Java con un solo argumento nulo?

Si tengo un método vararg Java foo(Object …arg) y llamo foo(null, null) , tengo ambos arg[0] y arg[1] como null s. Pero si llamo a foo(null) , arg sí es nulo. ¿Por qué está pasando esto? ¿Cómo debo llamar a foo para que foo.length == 1 && foo[0] == null sea true ?