Đ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
yieldbởi Michael Stumvarbởi Michael Stumusing()tuyên bố của kokosreadonlybởi kokosasbởi Mike Stoneas/isbởi Ed Swangrenas/is(được cải thiện) bởi Rocketpantsdefaultbởi deathofratsglobal::bởi pzycomanusing()khối của AlexCusevolatilebởi Jakub turcextern aliasbởi Jakub turc
Thuộc tính
DefaultValueAttributebởi Michael StumObsoleteAttributebởi DanielSmurfDebuggerDisplayAttributebởi StuDebuggerBrowsablevàDebuggerStepThroughbởi bdukesThreadStaticAttributebởi marxidadFlagsAttributecủa Martin ClarkeConditionalAttributebở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:newbở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
enumgiá trị của lfoust- @variablenames bởi marxidad
eventkhai 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 checkedvà cácuncheckednhà khai thác bởi Binoj Antonyimplicit and explicitkhai 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 __refvaluebở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
partialphương pháp của Jon Erickson- Chỉ thị tiền xử lý của John Asbeck
DEBUGchỉ 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
__arglistbở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
TransactionScopebởi KiwiBastardDependantTransactionbởi KiwiBastardNullable<T>bởi IainMHMutexbởi DiagoSystem.IO.Pathbởi ageektrappingWeakReferencebở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>.HasValuevàNullable<T>.Valuetài sản của RismoGetValueOrDefaultphươ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