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
yieldvon Michael Stumvarvon Michael Stumusing()Aussage von Kokosreadonlyvon kokosasvon Mike Stoneas/isvon Ed Swangrenas/is(verbessert) von Rocketpantsdefaultvon Deathofratsglobal::von pzycomanusing()Blöcke von AlexCusevolatilevon Jakub Šturcextern aliasvon Jakub Šturc
Attribute
DefaultValueAttributevon Michael StumObsoleteAttributevon DannySmurfDebuggerDisplayAttributevon StuDebuggerBrowsableundDebuggerStepThroughvon bdukesThreadStaticAttributevon MarxidadFlagsAttributevon Martin ClarkeConditionalAttributevon AndrewBurns
Syntax
??(Koalesce Nulls) Operator von Kokos- Nummernschilder von Nick Berardi
where T:newvon 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
enumWerte von lfoust- @variablenames von marxidad
eventBetreiber von Marxidad- Formatieren Sie Zeichenfolgen in Klammern von Portman
- Eingabehilfen für den Zugriff auf Eigenschaften von xanadont
- Bedingter (ternärer) Operator (
?:) von JasonS checkedunduncheckedBetreiber von Binoj Antonyimplicit and explicitBetreiber von Flory
Sprachmerkmale
- Nullable Typen von Brad Barker
- Anonyme Typen von Keith
__makeref __reftype __refvaluevon Judah Himango- Objektinitialisierer von lomaxx
- Formatieren Sie Zeichenfolgen von David in Dakota
- Verlängerungsmethoden von Marxidad
partialMethoden von Jon Erickson- Präprozessor-Direktiven von John Asbeck
DEBUGVorprozessor-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
__arglistvon Zac Bowling
Visual Studio-Funktionen
- Wählen Sie einen Textblock im Editor von Himadri
- Schnipsel von DannySmurf
Rahmen
TransactionScopevon KiwiBastardDependantTransactionvon KiwiBastardNullable<T>von IainMHMutexvon DiagoSystem.IO.Pathvon ageektrappedWeakReferencevon Juan Manuel
Methoden und Eigenschaften
String.IsNullOrEmpty()Methode von KiwiBastardList.ForEach()Methode von KiwiBastardBeginInvoke(),EndInvoke()Methoden von Will DeanNullable<T>.HasValueundNullable<T>.ValueEigenschaften von RismoGetValueOrDefaultMethode 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