Це мені прийшло в голову після того, як я дізнався наступне з цього питання :
where T : struct
Ми, розробники C #, всі знаємо основи C #. Я маю на увазі декларації, умовні умови, цикли, оператори тощо.
Деякі з нас навіть освоїли такі речі, як Generics , анонімні типи , лямбда , LINQ , ...
Але які найпотаємніші особливості або хитрощі C #, про які навіть фанати C #, наркомани, експерти майже не знають?
Ось розкриті до цього часу функції:
Ключові слова
yield
від Michael Штумvar
від Michael Штумusing()
заява кокосаreadonly
по KOKOSas
від Mike Stoneas
/is
автор Ед Суангренas
/is
(покращено) Rocketpantsdefault
по деатофрамglobal::
від pzycomanusing()
блоки від AlexCusevolatile
по Якуб Šturcextern alias
по Якуб Šturc
Атрибути
DefaultValueAttribute
від Michael ШтумObsoleteAttribute
автор: DannySmurfDebuggerDisplayAttribute
від СтюDebuggerBrowsable
іDebuggerStepThrough
по bdukesThreadStaticAttribute
по marxidadFlagsAttribute
автор Мартін КларкConditionalAttribute
по AndrewBurns
Синтаксис
??
(coalesce nulls) оператор kokos- Числові позначення Ніка Берарді
where T:new
по Lars Mæhlum- Неявні генерики Кіта
- Однопараметричні лямбда від Кіта
- Автоматичні властивості від Keith
- Псевдоніми простору імен Кіта
- Дослівні рядкові букви з @ Патріком
enum
значення по lfoust- @variablenames від marxidad
event
оператори марксидадом- Форматуйте дужкові дужки від Portman
- Модифікатори доступності доступу до властивостей від xanadont
- Умовний (потрійний) оператор (
?:
) від JasonS checked
таunchecked
операторів Біной Антонійimplicit and explicit
оператори від Flory
Мовні особливості
- Зменшувані типи Бреда Баркера
- Анонімні типи Кіт
__makeref __reftype __refvalue
автор Юда Хіманго- Об'єктні ініціалізатори lomaxx
- Форматування рядків Девіда в Дакоті
- Способи розширення марксидадом
partial
методи Джон Еріксон- Препроцесорні директиви Джона Асбека
DEBUG
попередня директива Роберта Дургіна- Перевантаження оператора SefBkn
- Введіть міркування по чекриту
- Булеві оператори , прийняті на наступний рівень по Rob Гоф
- Передайте змінну типу значення як інтерфейс без боксу Роман Бойко
- Програмно визначити оголошений тип змінної Романа Бойко
- Статичні конструктори Кріса
- Легше нанести на очі / ущільнити ORM-картографування за допомогою LINQ ростеронацидом
__arglist
від Zac Боулінг
Особливості візуальної студії
- Виберіть блок тексту в редакторі Хімадрі
- Знімки від DannySmurf
Рамка
TransactionScope
автор: KiwiBastardDependantTransaction
автор: KiwiBastardNullable<T>
від IainMHMutex
від ДіагоSystem.IO.Path
за віковими заходамиWeakReference
від Juan Manuel
Методи та властивості
String.IsNullOrEmpty()
метод КівіБастардList.ForEach()
метод КівіБастардBeginInvoke()
,EndInvoke()
методи Вілл ДінNullable<T>.HasValue
таNullable<T>.Value
властивості RismoGetValueOrDefault
метод Джона Шихана
Поради та рекомендації
- Хороший метод для організаторів подій Andreas HR Nilsson
- Великі порівняння Джона
- Отримайте доступ до анонімних типів без відображення dp
- Швидкий спосіб Ліниво властивостей колекції Instantiate по Волі
- JavaScript-подібні анонімні вбудовані функції від roosteronacid
Інший
- netmodules по KOKOS
- LINQBridge від Duncan Smart
- Parallel Extensions по Joel Coehoorn