C# (объявленный "видят резкий") является высоким уровнем, со статическим контролем типов, язык программирования мультипарадигмы, разработанный Microsoft. Код C# обычно предназначается для семейства.NET Microsoft инструментов и времени выполнения, которое включает Платформу.NET и.NET Core. Используйте этот тег для вопросов о коде, написанном в C# или формальной спецификации C#.
c# является мультипарадигмой, управляемой, язык объектно-ориентированного программирования, созданный Microsoft в сочетании с.NET. C# может использоваться с любой реализацией.NET, такой как.NET Core, Платформа.NET, Моно, и Xamarin.
Версии 1.0/1.2 и 2.0 C# были отправлены и одобрили и как ECMA (веб-Версия) и как стандарты ISO/IEC. Последняя версия ECMA соответствует спецификации Microsoft C# 5.0. Спецификации языка также доступны от Microsoft для C# 3.0 и проекта C# 6.0, а также C# 5.0.
Система типов языка была первоначально статична только с явными позволенными объявлениями переменной. Введение var
(C# 3.0) и dynamic
(C# 4.0) позволил этому использовать вывод типа для неявного переменного ввода и использовать динамические системы типов, соответственно. Делегаты, особенно с лексической поддержкой закрытия анонимных методов (C# 2.0) и лямбда-выражения (C# 3.0), позволяют языку использоваться для функционального программирования.
C# 5.0, представленный async
и await
ключевые слова для упрощения использования асинхронных вызовов функции.
C# 6.0 представил пустой оператор распространения ?.
, фильтры исключения, строковая интерполяция и много других функций, которые помогают написать простой код.
C# 7.0 представил несколько out
аргументы, сопоставление с образцом, кортежи для возвращаемого значения, is
- выражения и switch
операторы с шаблонами, разрушением, локальными функциями и еще немного.
C# 7.1 представил универсальное Сопоставление с образцом, выведенные имена элементов кортежа, default
литералы, асинхронное основное, и еще немного.
C# 7.2 представлен private protected
, незапаздывающие параметры, передаваемые по имени, цифровой разделитель после основного спецификатора, касательно условного выражения, ссылочной семантики для типов значения и еще немного.
C# 7.3 представил функции, которые позволяют безопасному коду быть столь же производительным как небезопасный код, новые параметры компилятора, использование out
объявления переменной в поле, свойстве и инициализаторах конструктора и еще немного.
C# 8.0 представил nullable ссылочные типы, который генерирует предупреждения компилятора о возможном разыменовании пустых указателей, если код конкретно не выражает, что переменная может быть null
(например, string? foo
переменная, которая может быть пустой), асинхронные потоки, который уполномочивает - особенно IoT и интеграции облачных сервисов и методы интерфейса по умолчанию предотвратить повреждающиеся изменения в интерфейсах, наряду с некоторыми другими улучшениями.
Компиляция обычно делается в промежуточном языке Microsoft (MSIL), который затем скомпилирован в JIT в собственный код (и кэшируется) во время выполнения в Общеязыковой среде выполнения (CLR). Однако опции как NGen (для Платформы.NET) и AOT (для Моно) означают, что код C# может быть непосредственно скомпилирован в собственное изображение. Кроме того, некоторые платформы (например.NET Микро Платформа) действуют как интерпретаторы CIL без JIT.
Дженерики в C# обеспечиваются частично временем выполнения, в отличие от шаблонов C++ (шаблоны разрешены во время компиляции), или дженерики Java (которые используют стирание типа).
С комбинацией.NET Core для Windows, macOS и Linux, Платформы.NET для Windows (рабочий стол/сервер/мобильный), Моно, что полномочия приложения Xamarin на Android, Mac, iOS, tvOS и watchOS, Silverlight/Лунный свет (браузер / мобильный), Компактная Платформа (мобильная), и Микро Платформа (встроенные устройства), это доступно для широкого спектра платформ.
Привет мировой пример:
using System; class Hello { static void Main() { Console.WriteLine("Hello, World!"); } }
Привет Мировой пример с помощью классов:
using System; namespace HelloWorldUsingClasses { class ExampleClass { string exampleString = "Hello World!"; public ExampleClass() { Console.WriteLine(exampleString); } } class Program { static void Main(string[] args) { ExampleClass objHelloWorld = new ExampleClass(); } } }
Ресурсы Переполнения стека
Часто задаваемые вопросы
Random
предоставление тех же результатов каждый раз?List<Child>
кому: List<Parent>
?a == b ? x : y
)?NullReferenceException
? (Ссылка на объект не набор к объекту-экземпляру)Ресурсы
Книги
Учебные руководства
Будущее языка C#
Внесите и предложите новые возможности здесь.
Демонстрационные проекты
C# IDE Онлайн
C# офлайновый IDE
Анимации CSS позволяют анимировать переходы от одной конфигурации стиля CSS до другого. Модуль CSS описывает способ для авторов анимировать значения свойств CSS со временем, с помощью ключевых кадров. Поведением этих анимаций ключевых кадров можно управлять путем определения их продолжительности, количества повторений, и повторения поведения.
Анимации CSS позволяют анимировать переходы от одной конфигурации стиля CSS до другого. Анимации состоят из двух компонентов, стиль, описывающий анимацию CSS и ряд ключевых кадров, которые указывают на запуск и конечное состояние стиля анимации, а также возможное промежуточное звено waypoints.
animation-delay
animation-direction
animation-duration
animation-iteration-count
animation-name
animation-play-state
animation-timing-function
animation-fill-mode
Анимации подобны переходам CSS в этом, они изменяют представляемое значение свойств CSS со временем. Основная разница - то, что, в то время как переходы инициировали неявно, когда значения свойств изменяются, анимации явно выполняются, когда свойства анимации применяются.
p { animation-duration: 3s; animation-name: slidein; } @keyframes slidein { from { margin-left: 100%; width: 300%; } to { margin-left: 0%; width: 100%; } }