Dies kam mir in den Sinn, nachdem ich aus dieser Frage Folgendes gelernt hatte :
where T : struct
Wir, C # -Entwickler, kennen alle die Grundlagen von C #. Ich meine Deklarationen, Bedingungen, Schleifen, Operatoren usw.
Einige von uns beherrschten sogar die Dinge wie Generika , anonyme Typen , Lambdas , LINQ , ...
Aber was sind die verborgensten Funktionen oder Tricks von C #, die selbst C # -Fans, Süchtige und Experten kaum kennen?
Hier sind die bisher offenbarten Funktionen:
Schlüsselwörter
yield
von Michael Stumvar
von Michael Stumusing()
Aussage von Kokosreadonly
von kokosas
von Mike Stoneas
/is
von Ed Swangrenas
/is
(verbessert) von Rocketpantsdefault
von Deathofratsglobal::
von pzycomanusing()
Blöcke von AlexCusevolatile
von Jakub Šturcextern alias
von Jakub Šturc
Attribute
DefaultValueAttribute
von Michael StumObsoleteAttribute
von DannySmurfDebuggerDisplayAttribute
von StuDebuggerBrowsable
undDebuggerStepThrough
von bdukesThreadStaticAttribute
von MarxidadFlagsAttribute
von Martin ClarkeConditionalAttribute
von AndrewBurns
Syntax
??
(Koalesce Nulls) Operator von Kokos- Nummernschilder von Nick Berardi
where T:new
von Lars Mæhlum- Implizite Generika von Keith
- Ein-Parameter-Lambdas von Keith
- Auto-Eigenschaften von Keith
- Namespace-Aliase von Keith
- Wörtliche String-Literale mit @ von Patrick
enum
Werte von lfoust- @variablenames von marxidad
event
Betreiber von Marxidad- Formatieren Sie Zeichenfolgen in Klammern von Portman
- Eingabehilfen für den Zugriff auf Eigenschaften von xanadont
- Bedingter (ternärer) Operator (
?:
) von JasonS checked
undunchecked
Betreiber von Binoj Antonyimplicit and explicit
Betreiber von Flory
Sprachmerkmale
- Nullable Typen von Brad Barker
- Anonyme Typen von Keith
__makeref __reftype __refvalue
von Judah Himango- Objektinitialisierer von lomaxx
- Formatieren Sie Zeichenfolgen von David in Dakota
- Verlängerungsmethoden von Marxidad
partial
Methoden von Jon Erickson- Präprozessor-Direktiven von John Asbeck
DEBUG
Vorprozessor-Direktive von Robert Durgin- Überlastung des Bedieners durch SefBkn
- Typinferenz durch Chakrit
- Boolesche Operatoren von Rob Gough auf die nächste Stufe gebracht
- Übergeben Sie eine Variable vom Typ Wert als Schnittstelle ohne Boxen von Roman Boiko
- Programmgesteuerten deklarierten Variablentyp von Roman Boiko programmieren
- Statische Konstruktoren von Chris
- Einfacher auf den Augen / kondensierte ORM-Kartierung mit LINQ von Roosteronacid
__arglist
von Zac Bowling
Visual Studio-Funktionen
- Wählen Sie einen Textblock im Editor von Himadri
- Schnipsel von DannySmurf
Rahmen
TransactionScope
von KiwiBastardDependantTransaction
von KiwiBastardNullable<T>
von IainMHMutex
von DiagoSystem.IO.Path
von ageektrappedWeakReference
von Juan Manuel
Methoden und Eigenschaften
String.IsNullOrEmpty()
Methode von KiwiBastardList.ForEach()
Methode von KiwiBastardBeginInvoke()
,EndInvoke()
Methoden von Will DeanNullable<T>.HasValue
undNullable<T>.Value
Eigenschaften von RismoGetValueOrDefault
Methode von John Sheehan
Tipps
- Schöne Methode für Event-Handler von Andreas HR Nilsson
- Vergleiche in Großbuchstaben von John
- Zugriff auf anonyme Typen ohne Reflexion durch dp
- Ein schneller Weg, um Sammlungseigenschaften von Will träge zu instanziieren
- JavaScript-ähnliche anonyme Inline-Funktionen von Roosteronacid
Andere
- Netzmodule von Kokos
- LINQBridge von Duncan Smart
- Parallele Erweiterungen von Joel Coehoorn