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
yield
ile Michael Stumvar
ile Michael Stumusing()
kokos tarafından yapılan açıklamareadonly
kokos tarafındanas
ile Mike Stoneas
/ Ed Swangrenis
tarafındanas
/is
(geliştirildi) Rocketpantsdefault
deathofrats tarafındanglobal::
pzycoman tarafındanusing()
AlexCuse tarafından bloklarvolatile
ile Jakub Šturcextern alias
ile Jakub Šturc
Öznitellikler
DefaultValueAttribute
ile Michael StumObsoleteAttribute
DannySmurf tarafındanDebuggerDisplayAttribute
Stu tarafındanDebuggerBrowsable
ve bdukesDebuggerStepThrough
tarafındanThreadStaticAttribute
marxidad tarafındanFlagsAttribute
ile Martin ClarkeConditionalAttribute
AndrewBurns tarafından
Sözdizimi
??
(coalesce nulls) operatör kokos tarafından- Sayı işaretlerini Nick Berardi
where T:new
ile 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
enum
lfoust tarafından verilen değerler- @variablenames yazan marxidad
event
operatö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 checked
veunchecked
operatörler Binoj Antonyimplicit and explicit
Operatörler Flory
Dil özellikleri
- Brad Barker tarafından null olabilecek türler
- Keith tarafından anonim türleri
__makeref __reftype __refvalue
ile 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
partial
yö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
__arglist
ile Zac Bowling
Visual Studio Özellikleri
- Himadri tarafından editördeki metin bloğunu seçin
- Snippet'ler DannySmurf tarafından
iskelet
TransactionScope
KiwiBastard tarafındanDependantTransaction
KiwiBastard tarafındanNullable<T>
IainMH tarafındanMutex
Diago tarafındanSystem.IO.Path
ageektrapped tarafındanWeakReference
ile Juan Manuel
Yöntem ve Özellikleri
String.IsNullOrEmpty()
KiwiBastard yöntemiList.ForEach()
KiwiBastard yöntemiBeginInvoke()
, Will DeanEndInvoke()
yöntemleriNullable<T>.HasValue
ve RismoNullable<T>.Value
özellikleriGetValueOrDefault
John 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