Điều này xuất hiện trong đầu tôi sau khi tôi học được những điều sau đây từ câu hỏi này :
where T : struct
Chúng tôi, các nhà phát triển C #, tất cả đều biết những điều cơ bản của C #. Ý tôi là khai báo, điều kiện, vòng lặp, toán tử, v.v.
Một số người trong chúng ta thậm chí còn thành thạo các công cụ như Generics , các loại ẩn danh , lambdas , LINQ , ...
Nhưng những tính năng hay thủ thuật ẩn giấu nhất của C # mà ngay cả người hâm mộ, người nghiện, chuyên gia C # cũng không biết?
Dưới đây là các tính năng được tiết lộ cho đến nay:
Từ khóa
yield
bởi Michael Stumvar
bởi Michael Stumusing()
tuyên bố của kokosreadonly
bởi kokosas
bởi Mike Stoneas
/is
bởi Ed Swangrenas
/is
(được cải thiện) bởi Rocketpantsdefault
bởi deathofratsglobal::
bởi pzycomanusing()
khối của AlexCusevolatile
bởi Jakub turcextern alias
bởi Jakub turc
Thuộc tính
DefaultValueAttribute
bởi Michael StumObsoleteAttribute
bởi DanielSmurfDebuggerDisplayAttribute
bởi StuDebuggerBrowsable
vàDebuggerStepThrough
bởi bdukesThreadStaticAttribute
bởi marxidadFlagsAttribute
của Martin ClarkeConditionalAttribute
bởi AndrewBurns
Cú pháp
??
Toán tử (hợp nhất null) bởi kokos- Cờ hiệu số của Nick Berardi
where T:new
bởi Lars Mæhlum- Khái quát tiềm ẩn của Keith
- Lambdas một tham số của Keith
- Thuộc tính tự động của Keith
- Bí danh không gian tên của Keith
- Nguyên văn chuỗi ký tự với @ by Patrick
enum
giá trị của lfoust- @variablenames bởi marxidad
event
khai thác bởi marxidad- Định dạng chuỗi ngoặc theo Portman
- Công cụ sửa đổi khả năng truy cập thuộc tính của xanadont
- Toán tử có điều kiện (ternary) (
?:
) của JasonS checked
và cácunchecked
nhà khai thác bởi Binoj Antonyimplicit and explicit
khai thác bởi Flory
Đặc điểm ngôn ngữ
- Các loại không thể xóa của Brad Barker
- Các loại ẩn danh của Keith
__makeref __reftype __refvalue
bởi Judah Himango- Đối tượng khởi tạo bởi lomaxx
- Định dạng chuỗi của David ở Dakota
- Phương pháp mở rộng của marxidad
partial
phương pháp của Jon Erickson- Chỉ thị tiền xử lý của John Asbeck
DEBUG
chỉ thị tiền xử lý của Robert Durgin- Quá tải toán tử bởi SefBkn
- Gõ vô sinh bằng chakrit
- Toán tử Boolean được đưa lên cấp độ tiếp theo bởi Rob Gough
- Vượt qua biến loại giá trị như giao diện mà không có quyền anh của Roman Boiko
- Lập trình xác định loại biến được khai báo bởi Roman Boiko
- Xây dựng tĩnh bởi Chris
- Ánh xạ ORM dễ nhìn hơn / cô đặc hơn bằng cách sử dụng LINQ bởi roosteronacid
__arglist
bởi Zac Bowling
Tính năng Visual Studio
- Chọn khối văn bản trong trình soạn thảo của Himadri
- Đoạn trích của DanielSmurf
Khung
TransactionScope
bởi KiwiBastardDependantTransaction
bởi KiwiBastardNullable<T>
bởi IainMHMutex
bởi DiagoSystem.IO.Path
bởi ageektrappingWeakReference
bởi Juan Manuel
Phương thức và tính chất
String.IsNullOrEmpty()
phương pháp của KiwiBastardList.ForEach()
phương pháp của KiwiBastardBeginInvoke()
,EndInvoke()
phương pháp của Will DeanNullable<T>.HasValue
vàNullable<T>.Value
tài sản của RismoGetValueOrDefault
phương pháp của John Sheehan
Mẹo và thủ thuật
- Phương pháp hay cho người xử lý sự kiện của Andreas HR Nilsson
- So sánh chữ hoa của John
- Truy cập các loại ẩn danh mà không có sự phản ánh của dp
- Một cách nhanh chóng để nhanh chóng khởi tạo các thuộc tính bộ sưu tập của Will
- Các hàm nội tuyến ẩn danh giống như JavaScript của roosteronacid
Khác
- netmodules bởi kokos
- LINQBridge của Duncan Smart
- Phần mở rộng song song của Joel Coehoorn