tipos tipo programacion ejemplos datos dato conversion c# .net namespaces primitive

c# - ejemplos - tipos de datos en programacion pdf



¿Por qué funcionan los tipos de datos primitivos sin incluir el espacio de nombres del Sistema? (3)

Leí que todas las primitivas caen bajo el espacio de nombres del System . Si hago un comentario using System , esperaría que haya un error de compilación en mi programa. Sin embargo, se está ejecutando con éxito. ¿Por qué es esto?


Como se mencionó antes, int es un alias de tipo System.Int32 . El alias de los tipos primitivos se conoce implícitamente por el lenguaje C #. Aquí está la lista:

object: System.Object string: System.String bool: System.Boolean byte: System.Byte sbyte: System.SByte short: System.Int16 ushort: System.UInt16 int: System.Int32 uint: System.UInt32 long: System.Int64 ulong: System.UInt64 float: System.Single double: System.Double decimal: System.Decimal char: System.Char

Por lo tanto, para estos alias, también conocidos como tipos simples , no necesita especificar ningún espacio de nombres.


Cuando usas int, básicamente estás poniendo en System.Int32. Dado que este es el nombre de tipo completamente calificado, en realidad no necesita using System;

Tu programa funcionaria si lo hicieras

System.Int32 num = 0;

incluso sin el using


Esto se debe a que int es un alias para System.Int32 , y como el "Int32" ya tiene un prefijo con su espacio de nombres (es decir, "completamente calificado"), la sintaxis es legal sin tener que especificar el using System; en la parte superior de su código.

El siguiente fragmento de MSDN describe este concepto:

La mayoría de las aplicaciones de C # comienzan con una sección de uso de directivas. Esta sección enumera los espacios de nombres que la aplicación utilizará con frecuencia, y evita que el programador especifique un nombre completo cada vez que se use un método que esté contenido dentro. Por ejemplo, al incluir la línea:

using System;

Al inicio de un programa, el programador puede usar el código:

Console.WriteLine("Hello, World!");

En lugar de:

System.Console.WriteLine("Hello, World!");

System.Int32 (también conocido como "int") sería el último. Aquí hay un ejemplo de esto en código:

//using System; namespace Ns { public class Program { static void Main(string[] args) { System.Int32 i = 2; //OK, since we explicitly specify the System namespace int j = 2; //alias for System.Int32, so this is OK too Int32 k = 2; //Error, because we commented out "using System" } } }

Dado que la línea 11 no está completamente calificada / aliasing un tipo totalmente calificado, using System; tendría que ser comentado para que el error desaparezca.

Referencias adicionales