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
yield
autor: Michael Stumvar
autor: Michael Stumusing()
wypowiedź kokosreadonly
autor: kokosas
autor: Mike Stoneas
/is
przez Ed Swangrenas
/is
(ulepszone) przez Rocketpantsdefault
przez deathofratsglobal::
przez pzycomanusing()
bloki przez AlexCusevolatile
autor: Jakub Šturcextern alias
autor: Jakub Šturc
Atrybuty
DefaultValueAttribute
autor: Michael StumObsoleteAttribute
autor: DannySmurfDebuggerDisplayAttribute
autor: StuDebuggerBrowsable
iDebuggerStepThrough
przez bdukesThreadStaticAttribute
przez marxidadFlagsAttribute
autor: Martin ClarkeConditionalAttribute
autor: AndrewBurns
Składnia
??
(koalesce nulls ) operator kokos- Oznaczenia liczbowe przez Nicka Berardi
where T:new
autor: 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
enum
wartości według lfoust- @variablenames by marxidad
event
operatorzy przez marxidad- Sformatuj nawiasy ciągowe według Portmana
- Modyfikatory ułatwień dostępu przez Xanadont
- Operator warunkowy (trójskładnikowy) (
?:
) JasonS checked
orazunchecked
operatorzy Binoj Antonyimplicit and explicit
operatorzy Flory
Funkcje językowe
- Rodzaje zerowalne autorstwa Brada Barkera
- Anonimowe typy według Keitha
__makeref __reftype __refvalue
przez Judah Himango- Inicjalizatory obiektów przez lomaxx
- Formatuj ciągi znaków Davida w Dakocie
- Metody rozszerzenia autorstwa marxidad
partial
metody Jona Ericksona- Wytyczne preprocesora autorstwa Johna Asbecka
DEBUG
dyrektywa 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
__arglist
przez Zac Bowling
Funkcje programu Visual Studio
- Wybierz blok tekstu w edytorze autorstwa Himadri
- Fragmenty autorstwa DannySmurf
Struktura
TransactionScope
autor: KiwiBastardDependantTransaction
autor: KiwiBastardNullable<T>
przez IainMHMutex
przez DiagoSystem.IO.Path
przez ageektrappedWeakReference
autor: Juan Manuel
Metody i właściwości
String.IsNullOrEmpty()
metoda KiwiBastardList.ForEach()
metoda KiwiBastardBeginInvoke()
,EndInvoke()
metody Will DeanNullable<T>.HasValue
iNullable<T>.Value
właściwości RismoGetValueOrDefault
metoda 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