To przyszło mi do głowy po tym, jak nauczyłem się z tego pytania :
where T : struct
My, programiści C #, wszyscy znamy podstawy C #. Mam na myśli deklaracje, warunki, pętle, operatory itp.
Niektórzy z nas opanowali nawet takie rzeczy, jak Generics , anonimowe typy , lambda , LINQ , ...
Ale jakie są najbardziej ukryte funkcje lub sztuczki C #, o których nawet fani C #, uzależnieni, eksperci ledwo wiedzą?
Oto dotychczas ujawnione funkcje:
Słowa kluczowe
yieldautor: Michael Stumvarautor: Michael Stumusing()wypowiedź kokosreadonlyautor: kokosasautor: Mike Stoneas/isprzez Ed Swangrenas/is(ulepszone) przez Rocketpantsdefaultprzez deathofratsglobal::przez pzycomanusing()bloki przez AlexCusevolatileautor: Jakub Šturcextern aliasautor: Jakub Šturc
Atrybuty
DefaultValueAttributeautor: Michael StumObsoleteAttributeautor: DannySmurfDebuggerDisplayAttributeautor: StuDebuggerBrowsableiDebuggerStepThroughprzez bdukesThreadStaticAttributeprzez marxidadFlagsAttributeautor: Martin ClarkeConditionalAttributeautor: AndrewBurns
Składnia
??(koalesce nulls ) operator kokos- Oznaczenia liczbowe przez Nicka Berardi
where T:newautor: Lars Mæhlum- Domniemane leki generyczne autorstwa Keitha
- Lambda jednoparametrowe Keitha
- Auto właściwości według Keitha
- Aliasy przestrzeni nazw autorstwa Keitha
- Dosłowne ciągi literałów z @ przez Patrick
enumwartości według lfoust- @variablenames by marxidad
eventoperatorzy przez marxidad- Sformatuj nawiasy ciągowe według Portmana
- Modyfikatory ułatwień dostępu przez Xanadont
- Operator warunkowy (trójskładnikowy) (
?:) JasonS checkedorazuncheckedoperatorzy Binoj Antonyimplicit and explicitoperatorzy Flory
Funkcje językowe
- Rodzaje zerowalne autorstwa Brada Barkera
- Anonimowe typy według Keitha
__makeref __reftype __refvalueprzez Judah Himango- Inicjalizatory obiektów przez lomaxx
- Formatuj ciągi znaków Davida w Dakocie
- Metody rozszerzenia autorstwa marxidad
partialmetody Jona Ericksona- Wytyczne preprocesora autorstwa Johna Asbecka
DEBUGdyrektywa przedprocesorowa autorstwa Roberta Durgina- Przeciążenie operatora przez SefBkn
- Wpisz wnioskowanie według czakrytu
- Operatory logiczne przeniesione na wyższy poziom przez Roba Gougha
- Przekaż zmienną typu wartości jako interfejs bez boksu przez Romana Boiko
- Programowo określ deklarowany typ zmiennej przez Romana Boiko
- Static Constructors by Chris
- Łatwiejsze w użyciu / skondensowane mapowanie ORM za pomocą LINQ przez roosteronacid
__arglistprzez Zac Bowling
Funkcje programu Visual Studio
- Wybierz blok tekstu w edytorze autorstwa Himadri
- Fragmenty autorstwa DannySmurf
Struktura
TransactionScopeautor: KiwiBastardDependantTransactionautor: KiwiBastardNullable<T>przez IainMHMutexprzez DiagoSystem.IO.Pathprzez ageektrappedWeakReferenceautor: Juan Manuel
Metody i właściwości
String.IsNullOrEmpty()metoda KiwiBastardList.ForEach()metoda KiwiBastardBeginInvoke(),EndInvoke()metody Will DeanNullable<T>.HasValueiNullable<T>.Valuewłaściwości RismoGetValueOrDefaultmetoda Johna Sheehana
Porady & Triki
- Fajna metoda dla organizatorów wydarzeń autorstwa Andreasa HR Nilssona
- Porównania wielkich liter Johna
- Dostęp do typów anonimowych bez refleksji przez dp
- Szybki sposób na leniwe tworzenie instancji właściwości kolekcji przez Willa
- JavaScript-anonimowe funkcje wstawiane przez roosteronacid
Inny
- netmodules od kokos
- LINQBridge firmy Duncan Smart
- Rozszerzenia równoległe autorstwa Joela Coehoorna