Bu sorudan aşağıdakileri öğrendikten sonra aklıma geldi :
where T : struct
Biz, C # geliştiricileri, hepimiz C # temellerini biliyoruz. Beyanlar, şartlar, döngüler, operatörler vb.
Bazılarımız Generics , anonim tipler , lambdas , LINQ , ...
Ancak C # hayranlarının, bağımlılarının, uzmanların bile zar zor bildiği en gizli özellikler veya C # numaraları nelerdir?
İşte şimdiye kadar ortaya çıkan özellikler:
Anahtar kelimeler
yieldile Michael Stumvarile Michael Stumusing()kokos tarafından yapılan açıklamareadonlykokos tarafındanasile Mike Stoneas/ Ed Swangrenistarafındanas/is(geliştirildi) Rocketpantsdefaultdeathofrats tarafındanglobal::pzycoman tarafındanusing()AlexCuse tarafından bloklarvolatileile Jakub Šturcextern aliasile Jakub Šturc
Öznitellikler
DefaultValueAttributeile Michael StumObsoleteAttributeDannySmurf tarafındanDebuggerDisplayAttributeStu tarafındanDebuggerBrowsableve bdukesDebuggerStepThroughtarafındanThreadStaticAttributemarxidad tarafındanFlagsAttributeile Martin ClarkeConditionalAttributeAndrewBurns tarafından
Sözdizimi
??(coalesce nulls) operatör kokos tarafından- Sayı işaretlerini Nick Berardi
where T:newile Lars Mæhlum- Örtülü jenerikler Keith tarafından
- Keith tarafından tek parametreli lambdas
- Keith tarafından otomatik özellikler
- Keith tarafından isim alanı takma adları
- @ İle Patrick kelimesi dizgi değişmezleri
enumlfoust tarafından verilen değerler- @variablenames yazan marxidad
eventoperatörler marxidad tarafından- Dize ayraçlarını Portman ile biçimlendirme
- Xanadont tarafından sağlanan mülk erişimi erişilebilirlik değiştiricileri
- Koşullu (üçlü) operatör (
?:) JasonS tarafından checkedveuncheckedoperatörler Binoj Antonyimplicit and explicitOperatörler Flory
Dil özellikleri
- Brad Barker tarafından null olabilecek türler
- Keith tarafından anonim türleri
__makeref __reftype __refvalueile Judah Himango- Lomaxx tarafından nesne başlatıcılar
- Dizeleri Dakota'daki David tarafından biçimlendirin
- Marxidad tarafından Genişletme Yöntemleri
partialyöntemleri Eric Erickson- Önişlemci direktifleri John Asbeck
DEBUGön işlemci yönergesi Robert Durgin- Operatör aşırı yükleme SefBkn tarafından
- Chakrit tarafından yazılan çıkarım
- Rob Gough tarafından bir sonraki seviyeye alınan Boole operatörleri
- Roman Boiko'nun boks olmadan arayüz olarak değer tipi değişkenini iletme
- Bildirilen değişken türünün programsal olarak Roman Boiko tarafından belirlenmesi
- Statik Yapıcılar Chris
- Roosteronacid tarafından LINQ kullanılarak daha kolay göz / yoğun ORM eşlemesi
__arglistile Zac Bowling
Visual Studio Özellikleri
- Himadri tarafından editördeki metin bloğunu seçin
- Snippet'ler DannySmurf tarafından
iskelet
TransactionScopeKiwiBastard tarafındanDependantTransactionKiwiBastard tarafındanNullable<T>IainMH tarafındanMutexDiago tarafındanSystem.IO.Pathageektrapped tarafındanWeakReferenceile Juan Manuel
Yöntem ve Özellikleri
String.IsNullOrEmpty()KiwiBastard yöntemiList.ForEach()KiwiBastard yöntemiBeginInvoke(), Will DeanEndInvoke()yöntemleriNullable<T>.HasValueve RismoNullable<T>.ValueözellikleriGetValueOrDefaultJohn Sheehan yöntemi
İpuçları & Hileler
- Andreas HR Nilsson'un olay işleyicileri için güzel bir yöntem
- John'un büyük harf karşılaştırmaları
- Dp tarafından yansımasız anonim türlere erişin
- Will tarafından toplama mülklerini tembel bir şekilde başlatmanın hızlı bir yolu
- Roosteronacid'den JavaScript benzeri anonim satır içi işlevler
Diğer
- netmodules yapan kokos
- Duncan Smart tarafından buzdolabı
- Paralel Uzantılar - Joel Coehoorn