Це мені прийшло в голову після того, як я дізнався наступне з цього питання :
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