2010-01-16 21 views
5

Duplicar posibles:
a curious c# syntax¿Qué hace el? significa después de un tipo?

Así que he visto algo de código alrededor y algunos de ellos uso un? después del tipo, como este:

private Point? loc = null; 

Así que me pregunto si Point? es diferente a Point (no puedo poner un signo de interrogación al final de mi oración o los confundiré chicos ...:]). El lenguaje que estoy usando es C# por cierto.

+2

Para escribir "código" dentro de las oraciones normales, use los puntos atrás, 'para marcar el texto como" código ". De esta forma, puedes usar corchetes angulares, y si hubieras puesto el signo de interrogación dentro, tampoco hubieras confundido a nadie. –

+0

Dup de http://stackoverflow.com/questions/2069863/a-curious-c-syntax/2069873#2069873 – Eilon

Respuesta

9

T? es una abreviatura (en C#) para Nullable<T> - por lo Point? es otra manera de escribir o Nullable<Point> ejemplo.

Consulte las secciones 1.3 y 4.1 de la especificación de lenguaje C# 3 y, en otros lugares, para ser honesto, para obtener más detalles. Consulte los documentos para System.Nullable<T> para obtener más información del lado del marco de trabajo. O lea el capítulo 4 de C# en profundidad :) (Desafortunadamente no es uno de los capítulos gratuitos).

(Esta pregunta seguramente será un duplicado, pero no tengo la energía para encontrarla en este momento).

+1

Es de hecho un dup: http://stackoverflow.com/questions/2069863/a-curious-c -sintada/2069873 # 2069873 – Eilon

+0

Otro duplicado: http://stackoverflow.com/questions/2072482/in-c-what-is-the-in-the-type-datetime –

+0

Sabía que estaba en algún lugar, pero no pudo encontrar (No creo que la búsqueda pueda manejarlo? muy bien y no tenía ni idea de que era nulable ... Lo siento chicos. – DMan

2

Point? es lo mismo que Nullable<Point>. Le permite asignar null a tipos de valores, como struct s.

0

Significa que el tipo puede aceptar su 'valor y nulo.

Cuestiones relacionadas