2010-01-16 29 views
5

thể trùng lặp:
a curious c# syntaxCái gì? có nghĩa là sau một loại?

Vì vậy, tôi đã nhìn thấy một số mã xung quanh và một vài trong số họ sử dụng một? sau loại, như sau:

private Point? loc = null; 

Vì vậy, tôi tự hỏi liệu điểm? khác với Điểm (không thể đặt dấu hỏi ở cuối câu của tôi hoặc tôi sẽ nhầm lẫn các bạn ...:]). Ngôn ngữ tôi đang sử dụng là C# bằng cách này.

+2

Để viết "mã" bên trong các câu bình thường, hãy sử dụng dấu gạch chéo ngược, 'để gắn cờ văn bản là" mã ". Bằng cách này, bạn có thể sử dụng các dấu ngoặc nhọn, và nếu bạn đã đặt dấu chấm hỏi bên trong, bạn cũng sẽ không nhầm lẫn ai cả. –

+0

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

Trả lời

9

T? là viết tắt (trong C#) cho Nullable<T> - vì vậy Point? là một cách khác để viết Nullable<Point> hoặc ví dụ.

Xem phần 1.3 và 4.1 của đặc tả ngôn ngữ C# 3 - và nhiều nơi khác, thành thật - để biết thêm chi tiết. Xem tài liệu cho System.Nullable<T> để biết thêm thông tin từ phía khung công tác. Hoặc đọc chương 4 của C# trong chiều sâu :) (Thật không may nó không phải là một trong các chương miễn phí.)

(Câu hỏi này bị trùng lặp, nhưng hiện tại tôi không có năng lượng để tìm).

+1

Thực sự là một sự lừa đảo: http://stackoverflow.com/questions/2069863/a-curious-c -syntax/2069873 # 2069873 – Eilon

+0

Một bản sao khác: http://stackoverflow.com/questions/2072482/in-c-what-is-the-in-the-type-datetime –

+0

Biết nó ở đâu đó, nhưng không thể tìm thấy nó (tôi không nghĩ rằng việc tìm kiếm có thể xử lý? rất tốt và tôi đã không có đầu mối nó đã được nullable ... Xin lỗi guys. – DMan

2

Point? giống với Nullable<Point>. Nó cho phép bạn chỉ định null cho các loại giá trị, chẳng hạn như struct s.

0

Điều đó có nghĩa là loại có thể chấp nhận giá trị và giá trị của nó.