2009-10-09 11 views

Respuesta

11

Tipo que se ha declarado explícitamente con un nombre. Por ejemplo, cualquier clase o estructura que declare es un tipo con nombre.

También hay tipos anónimos, que se declaran sin nombre y el compilador asigna un nombre a ese tipo que no es accesible para el desarrollador.

Puede leer más sobre los diferentes tipos de types in C#.

3

Esto se refiere a las variables que son explícitamente mecanografiadas, a diferencia de las que tienen un tipo anónimo. Cualquier cosa que no sea anónima es un tipo con nombre.

Presentada con (.net) .Net 3.0, los tipos anónimos proporcionan una forma conveniente de crear objetos que contienen un conjunto de propiedades de solo lectura, sin tener que definir un tipo de nombre explícito para ese fin.

Aunque la aplicación de los tipos anónimos también requiere el uso de type inference (para la tipificación de las propiedades del objeto), tipos anónimos están no debe ser confundido conImplicitly Typed Local Variables mediante el cual el var palabra clave libera al programador de indicar explícitamente un tipo de variable, pero donde el compilador proporciona efectivamente un tipo. (la mayoría de las variables implícitamente tipadas no son tipos anónimos y, por lo tanto, son un tipo con nombre. Es solo el compilador el que nombra).

+0

Esto está mal. Escriba inferencia y los tipos anónimos no están relacionados. La inferencia de tipo se puede usar en algunos casos para excluir parámetros genéricos o con la palabra clave var. Los tipos anónimos son tipos sin nombre que se crean sobre la marcha. – recursive

+0

@recursive ¡Gracias! Leí sobre esto y me di cuenta de dónde me equivoqué. La inferencia de tipo se usa a menudo en el caso de tipos anónimos, pero los dos conceptos están completamente separados. Arreglaré mi respuesta en consecuencia (o la mataré por completo ...) – mjv

+1

Genial. Vázquez eliminado. – recursive

2

Cualquier tipo que no sea Annonymous Type sería un "Tipo con nombre".

+1

Según su definición, bidimensional-array-of-integers es un tipo con nombre. ¿Eso realmente tiene sentido? Si es así, ¿cuál es su nombre? –

+1

@Eric Gracias por leer esta pregunta.Por favor, arroja más luz sobre esta discusión si sientes que falta algo o es incomprendido. – csharpbaby

2

Un tipo con nombre es cualquier tipo explícitamente definido (estructura, clase, etc.) que usted crea y le da un nombre.

ej .:

public class Foo 
{ 
    public string Bar{ get; set; } 
} 

En este caso, foo es un tipo llamado.

Esto es a diferencia de un tipo anónimo, que normalmente se crea sobre la marcha:

var MyFoo = new { Bar = "some text" }; 

acabo de crear un nuevo objeto, llamado myFoo. No le hemos dado explícitamente un nombre de tipo, pero le hemos dado implícitamente una propiedad String, Bar, con el valor "some text".

+0

del comentario anterior de MJV, 'Var MyFoo' significa variable tipeada implícitamente. ¿Cómo es este tipo anónimo como usted ha mencionado? Gracias – csharpbaby