type sirve que para long data bool c# types

sirve - type integer c#



¿Significa "seguro" y "fuertemente tipado" lo mismo? (5)

¿"Tipo de caja fuerte" y "tipo fuerte" significan lo mismo?


"Tipo seguro" significa que no hay conversión involucrada y no se pueden producir errores de tipo en tiempo de ejecución.

Algunas personas argumentan que "fuertemente tipado" no significa nada, o "está bien" o "me siento cómodo con eso".

De todos modos, "Tipo seguro" se relaciona con una parte del código o API, cuando "Escrito con firmeza" se refiere a todo un lenguaje o plataforma.


Buena pregunta. Lee this entrada de wikipedia, aquí hay un extracto:

Benjamin C. Pierce, autor de Tipos y Lenguajes de Programación y Tipos Avanzados y Lenguajes de Programación, dice: "Pasé algunas semanas ... tratando de resolver la terminología de" tipografía fuerte "," tipificada estáticamente "," segura " etc., y lo encontró increíblemente difícil ... El uso de estos términos es tan variado que los hace casi inútiles ".


No, no necesariamente, aunque depende de su definición de los términos, y no hay definiciones muy claras y ampliamente aceptadas.

Por ejemplo, los lenguajes de programación dinámicos son a menudo de tipo seguro, pero no están muy tipeados. En otras palabras, no hay información de tipo de tiempo de compilación que determine lo que puede y no puede hacer con un tipo, pero en el tiempo de ejecución el tiempo de ejecución se asegura de que no use un tipo como si fuera otro.

Por ejemplo, en C # 4.0, puedes hacer:

dynamic foo = "hello"; dynamic length = foo.Length; // Uses String.Length at execution time foo = new int[] { 10, 20, 30 }; length = foo.Length; // Uses Array.Length at execution time dynamic bar = (FileStream) foo; // Fails!

La última línea es la clave para que sea seguro para el tipo: no hay una conversión segura de una matriz int a FileStream , por lo que la operación falla, en lugar de tratar los bytes del objeto de la matriz como si fueran una FileStream .

EDITAR: C # es normalmente "fuertemente tipado" (como lenguaje) y de tipo seguro: el compilador no le permitirá intentar realizar llamadas arbitrarias en un objeto, y el tiempo de ejecución no le permitirá realizar conversiones inapropiadas.

No estoy completamente seguro de dónde encaja el código inseguro; no sé lo suficiente para comentar, me temo.

La escritura dinámica en C # 4 permite un código débilmente tipificado pero aún seguro para el tipo, como se muestra arriba.

Tenga en cuenta que foreach realiza una conversión implícita, por lo que es una especie de híbrido:

ArrayList list = new ArrayList(); list.Add("foo"); foreach (FileStream stream in list) { ... }

Esto se compilará (hubo otra pregunta sobre esto recientemente) pero fallará en el tiempo de ejecución. Irónicamente, eso se debe a que está intentando ser fuertemente tipado con respecto a la variable de stream , lo que significa que debe realizar una conversión en el resultado del iterador.


Son básicamente los mismos, es solo una cuestión de interpretación:

De la wikipedia:

Tipo de seguridad :

Type safety es sinónimo de una de las muchas definiciones de tipificación fuerte; pero el tipo de seguridad y la tipificación dinámica son mutuamente compatibles. Un lenguaje de tipo dinámico como Smalltalk puede verse como un lenguaje de tipo fuerte con un sistema de tipo muy permisivo en el que cualquier programa sintácticamente correcto está bien escrito; siempre que su semántica dinámica garantice que ningún programa de este tipo "salga mal" en el sentido adecuado, satisface la definición anterior y puede denominarse de tipo seguro.


ype seguro significa evitar que los programas accedan a la memoria fuera de los límites de las propiedades públicas de un objeto. Cuando el código no es seguro para el tipo, pueden ocurrir efectos secundarios no deseados. La seguridad de tipo es importante para el aislamiento del ensamblaje y la aplicación de la seguridad. Cuando el código es seguro para el tipo, el tiempo de ejecución del lenguaje común puede aislar completamente los ensamblajes entre sí