Ini muncul di benak saya setelah saya mempelajari yang berikut dari pertanyaan ini :
where T : struct
Kami, pengembang C #, semua tahu dasar-dasar C #. Maksud saya deklarasi, kondisional, loop, operator, dll.
Beberapa dari kita bahkan menguasai hal-hal seperti Generik , tipe anonim , lambdas , LINQ , ...
Tapi apa saja fitur atau trik paling tersembunyi dari C # yang bahkan tidak diketahui oleh penggemar, pecandu, dan pakar C #?
Berikut adalah fitur yang terungkap sejauh ini:
Kata kunci
yieldoleh Michael Stumvaroleh Michael Stumusing()pernyataan oleh kokosreadonlyoleh kokosasoleh Mike Stoneas/isdari Ed Swangrenas/is(ditingkatkan) oleh Rocketpantsdefaultoleh deathofratsglobal::oleh pzycomanusing()blok oleh AlexCusevolatileoleh Jakub Šturcextern aliasoleh Jakub Šturc
Atribut
DefaultValueAttributeoleh Michael StumObsoleteAttributeoleh DannySmurfDebuggerDisplayAttributeoleh StuDebuggerBrowsabledanDebuggerStepThrougholeh bdukesThreadStaticAttributeoleh marxidadFlagsAttributeoleh Martin ClarkeConditionalAttributeoleh AndrewBurns
Sintaksis
??(coalesce nulls) operator oleh kokos- Angka ditandai oleh Nick Berardi
where T:newoleh Lars Mæhlum- Obat generik implisit oleh Keith
- Satu-parameter lambdas oleh Keith
- Properti otomatis oleh Keith
- Namespace alias oleh Keith
- Verbatim string literals dengan @ by Patrick
enumnilai oleh lfoust- @variablenames oleh marxidad
eventoperator oleh marxidad- Format kurung string dengan Portman
- Pengubah aksesibilitas properti atau akses oleh xanadont
- Operator kondisional (ternary) (
?:) oleh JasonS checkeddanuncheckedoperator oleh Binoj Antonyimplicit and explicitoperator oleh Flory
Fitur Bahasa
- Jenis tidak dapat dihapus oleh Brad Barker
- Jenis anonim menurut Keith
__makeref __reftype __refvalueoleh Judah Himango- Penginisialisasi objek oleh lomaxx
- Memformat string dengan David di Dakota
- Metode Penyuluhan oleh marxidad
partialmetode oleh Jon Erickson- Arahan preprosesor oleh preprosesor John Asbeck
DEBUGdirektif pra-prosesor oleh Robert Durgin- Operator kelebihan oleh SefBkn
- Ketik inferensi berdasarkan chakrit
- Operator Boolean dibawa ke tingkat berikutnya oleh Rob Gough
- Lulus variabel tipe nilai sebagai antarmuka tanpa tinju oleh Roman Boiko
- Secara terprogram menentukan jenis variabel yang dideklarasikan oleh Roman Boiko
- Konstruktor Statis oleh Chris
- Pemetaan ORM yang lebih mudah dilihat / dipadatkan menggunakan LINQ oleh roosteronacid
__arglistoleh Zac Bowling
Fitur Visual Studio
- Pilih blok teks dalam editor oleh Himadri
- Cuplikan oleh DannySmurf
Kerangka
TransactionScopeoleh KiwiBastardDependantTransactionoleh KiwiBastardNullable<T>oleh IainMHMutexoleh DiagoSystem.IO.Patholeh ageektrappedWeakReferenceoleh Juan Manuel
Metode dan Properti
String.IsNullOrEmpty()metode oleh KiwiBastardList.ForEach()metode oleh KiwiBastardBeginInvoke(),EndInvoke()metode oleh Will DeanNullable<T>.HasValuedanNullable<T>.Valueproperti oleh RismoGetValueOrDefaultmetode oleh John Sheehan
Tips dan Trik
- Metode yang bagus untuk penangan acara oleh Andreas HR Nilsson
- Perbandingan huruf besar oleh John
- Akses tipe anonim tanpa refleksi oleh dp
- Cara cepat untuk instantiate properti koleksi dengan malas oleh Will
- JavaScript-seperti fungsi inline anonim oleh roosteronacid
Lain
- netmodules oleh kokos
- LINQBridge oleh Duncan Smart
- Ekstensi Paralel oleh Joel Coehoorn