Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the ? mean after a type? [duplicate]

Possible Duplicate:
a curious c# syntax

So I've seen some code around and a few of them use a ? after the type, like this:

private Point? loc = null;

So I'm wondering if Point? is different than Point (can't put a question mark at the end of my sentence or I'll confuse you guys ... :] ). The language I'm using is C# by the way.

like image 294
Dominic K Avatar asked Jan 16 '10 23:01

Dominic K


2 Answers

T? is a shorthand (in C#) for Nullable<T> - so Point? is another way of writing Nullable<Point> or example.

See sections 1.3 and 4.1 of the C# 3 language spec - and various other places, to be honest - for more details. See the docs for System.Nullable<T> for more information from the framework side of things. Or read chapter 4 of C# in Depth :) (Unfortunately it's not one of the free chapters.)

(This question is bound to be a duplicate, but I don't have the energy to find it right now.)

like image 119
Jon Skeet Avatar answered Nov 19 '22 04:11

Jon Skeet


Point? is the same as Nullable<Point>. It allows you to assign null to value types, such as structs.

like image 2
Thomas Avatar answered Nov 19 '22 02:11

Thomas