c# — вопросы с ответами

20 ответов
Я новичок в Visual Studio. В настоящее время я создаю форму для входа. У меня есть этот код. string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; try { using (OdbcConnection connect = new OdbcConnection(connectionString)) { connect.Op...
visual-studio
login
visual-studio-2010
22 июнь 2011, в 06:08
34 ответа
У меня есть код и когда он выполняется, он выдает NullReferenceException, говоря: Ссылка на объект не установлена ​​в экземпляр объекта. Что это значит и что я могу сделать, чтобы исправить эту ошибку?
null
nullreferenceexception
11 янв. 2011, в 17:29
38 ответов
Как преобразовать string в byte[] в .NET(С#) без указания конкретной кодировки вручную? Я собираюсь зашифровать строку. Я могу зашифровать его без преобразования, но мне все равно хотелось бы знать, почему здесь начинается кодирование. Кроме того, почему кодирование должно учитываться? Не могу ли я ...
string
character-encoding
23 янв. 2009, в 13:49
24 ответа
Есть ли способ сделать следующее возвращение истинным? string title = "ASTRINGTOTEST"; title.Contains("string"); Кажется, что нет перегрузки, которая позволяет мне установить чувствительность к регистру. В настоящее время я ВЕРХНИЙ их обоих, но это просто глупо (к чему я имею в виду проблемы i18n...
string
contains
case-insensitive
14 янв. 2009, в 22:18
10 ответов
Каковы правильные номера версий для С#? Что вышло, когда? Почему я не могу найти ответы на вопрос о С# 3.5? Этот вопрос прежде всего помогает тем, кто ищет ответ, используя неправильный номер версии, например С# 3.5. Надежда состоит в том, что любой, кто не найдет ответ с неправильным номером верс...
visual-studio
.net-framework-version
29 окт. 2008, в 16:51
42 ответа
Как создать таблицу Excel с помощью С#, не требуя установки Excel на компьютере с кодом?
excel
file-io
29 сен. 2008, в 21:47
20 ответов
Я видел несколько разных способов перебора словаря на С#. Есть ли стандартный способ?
loops
dictionary
26 сен. 2008, в 19:31
29 ответов
Не рекомендуется просто ловить System.Exception. Вместо этого следует поймать только "известные" исключения. Теперь это иногда приводит к ненужному повторяющемуся коду, например: try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowExce...
exception
exception-handling
25 сен. 2008, в 21:11
10 ответов
Я запускал StyleCop над кодом С#, и он продолжает сообщать, что мои директивы using должны находиться внутри пространства имен. Есть ли техническая причина для размещения директив using внутри, а не вне пространства имен?
namespaces
code-organization
stylecop
24 сен. 2008, в 03:24
26 ответов
Как вы можете перечислить enum в С#? например. следующий код не компилируется: public enum Suit { Spades, Hearts, Clubs, Diamonds } public void EnumerateAllSuitsDemoMethod() { foreach (Suit suit in Suit) { DoSomething(suit); } } И дает следующую ошибку времен...
enums
enumeration
19 сен. 2008, в 20:42
39 ответов
Я хочу сделать что-то вроде: MyObject myObj = GetMyObj(); // Create and fill a new object MyObject newObj = myObj.Clone(); И затем внесите изменения в новый объект, который не отражен в исходном объекте. Мне не часто нужна эта функциональность, поэтому, когда это было необходимо, я прибегал к созда...
clone
17 сен. 2008, в 00:53
13 ответов
Я всегда использовал || (два канала) в выражениях OR, как на С#, так и на PHP. Иногда я вижу один используемый канал: |. В чем разница между этими двумя обычаями? Существуют ли какие-либо оговорки при использовании одного над другим или они взаимозаменяемы?...
operators
29 авг. 2008, в 22:17
23 ответа
Как int можно передать в enum в С#?
casting
enums
27 авг. 2008, в 04:11
64 ответа
Пример (обратите внимание на случай): string s = "Hello world!"; String s = "Hello world!"; Каковы рекомендации по использованию каждого из них? И в чем отличия?
string
types
alias
10 авг. 2008, в 08:20
64 ответа
Учитывая DateTime, представляющий день рождения человека, как я могу рассчитать их возраст в годах?
datetime
31 июль 2008, в 23:01

Подробнее о c#

C# (или си шарп) – это высокоуровневый объектно-ориентированный язык программирования. Он был разработан в конце 90-х – начале 00-х годов компанией Microsoft для ее фирменных инструментов и сред. Так, он используется во всех реализациях среды .NET, например Framework или Core.

История возникновения

В 1998 году компания Microsoft решила выпустить прикладной язык для своих программных продуктов. За основу при его разработке было решено взять Java. Однако создатели Java, корпорация Sun Microsystems, подали на Microsoft в суд за нарушение права интеллектуальной собственности.

Суд Microsoft проиграли, поэтому им пришлось создавать язык с нуля. Впрочем, несмотря на это, язык все равно остался достаточно похожим на Java.

Первая версия C# была анонсирована в 2000 году. А в 2002 состоялся релиз. Одновременно с C# вышла сопутствующая ему среды разработки Visual Studio.

С тех пор на свет появились уже семь версий языка и готовится к выходу восьмая. C# стал одним из самых популярных языков программирования и обогнал своего прародителя – Java.

Кстати: Поскольку, по сути дела, C# разрабатывался на основе Java, знающим этот язык C# будет выучить гораздо проще.

Особенности

C# создавался как прикладной язык для работы в исполняющей среде CLR. Поэтому его возможности во многом зависят от возможностей CLR.

По сути, CLR – это двигатель языка. Ведь с его помощью реализуются такие важные функции, как контроль памяти, компиляция, обеспечение безопасности, выполнение написанного кода, а также многие другие.

Язык может использовать библиотеки BCL. Также широко применяется набор классов от .NET Framework.

C# имеет единую систему типов. Все они, в том числе типы примитивы «int» и «double», идут от единственного корневого типа «object». Это означает, что все типы имеют абсолютно одинаковый набор операций, с которыми можно работать так же, как и с операциями других их видов. Такая унификация сильно упрощает изучение языка и программирование на нем.

Кроме того, C#, несмотря на то, что является объектно-ориентированным языком, поддерживает и компонентно-ориентированное программирование. Ведь современные тенденции в программировании – это создание компонентов программ в виде независимых пакетов, каждый из которых отвечает за ту или иную функцию конечного продукта. Одна из отличительных особенностей таких компонентов – программирование на основе методов, свойств, событий. С помощью C# можно строить конструкции, позволяющие реализовывать этот подход к созданию программ.

C# имеет ряд функций, благодаря которым приложения, написанные на нем надежно, стабильно работают. Вот они:

  • Удаление мусора. Эта функция позволяет автоматически очистить память от неиспользуемых или уничтоженных объектов;
  • Обработка исключений. Позволяет находить и устранять ошибки;
  • Строгая типизация. Благодаря ей невозможно обратиться к неинициализированным переменным, покинуть пределы массива или неконтролируемо привести типы.

Синтаксис

Синтаксис этого языка ближе всего к C++ и Java. Его отличительными особенностями являются:

  • Четкая, однозначная типизация;
  • Полиморфизм;
  • Поддержка перегрузки операторов;
  • Наличие указателей на функции-члены;
  • Поддержка свойств, атрибутов, событий и исключений.

Версии языка

С момента возникновения и до настоящего времени C# имел несколько версий. Вот какие изменения он претерпевал от версии к версии:

  • 1.0, 1.2, 1.3. были представлены и одобрены как стандарты ECMA и ISO/IEC;
  • 3.0 и 4.0. В этих версиях в язык были введены команды var и dynamic, которые позволили выводить типы для полной типизации;
  • 5.0. Добавлены команды async и await, упрощающие вызов асинхронных функций;
  • 6.0. Язык дополнили оператором распространения нулевых значений, фильтрами исключений, а также множеством других средств, позволяющих значительно упростить код;
  • 7.0. Введены переменные out, кортежи и их деконструкторы, шаблоны с is и switch, локальные переменные, выражения throw.

В грядущей версии 8.0 планируется ввести обнуляемые ссылочные типы, асинхронные потоки, а также ряд других улучшений.

Достоинства

К плюсам C# можно отнести:

  • Относительная простота языка для изучения;
  • Наличие собственной среды для разработки;
  • Наличие большого количества готовых классов для применения в различных ситуациях;
  • Наличие возможности работы с памятью напрямую;
  • Удобный синтаксис;
  • Возможность интеграции с другими языками, например C или C++, с помощью всего одной команды;
  • Высокая открытость текстов библиотек.

Где применяется

Поскольку C# - разработка компании Microsoft, то применяется он в основном в ее продукции. Вот где используется этот язык:

  1. Mono – созданный на базе свободно распространяемого ПО проект для программирования на C#. Объединяет в себе компилятор, отладчик и среду исполнения. Кроме того, имеет обширные библиотеки для языка;

Кстати: При помощи Mono можно программировать на C# не только на Windows, но и на других платформах, таких, как Linux или MacOS.

  1. DirectX – API для создания приложений на Windows, чаще всего используемый для разработки игр. С его помощью осуществляется полное управление игровым приложением и его коннекция с «железом»: на экран выводится картинка, поступает звук на колонки, обрабатываются сигналы с контроллеров, обеспечивается соединение по сети;
  2. Unity – трехмерный движок для создания компьютерных игр, работающий на всех основных игровых платформах, среди которых Microsoft, Linux, Playstation 3, Xbox 360, а также основные мобильные операционные системы.

Примеры

Вот так выглядит написание программы для выведения на экран ставшего классическим словосочетания «Hello world»:

А вот так пишется этот пример с присвоением классов различным объектам кода:

Насколько сложно выучить

C# считается языком со средним порогом вхождения. Его изучение не представит серьезной сложности. Кроме того, большой плюс в освоении – огромное количество учебной литературы, а также разнообразных инструкций, которые периодически выпускает Microsoft. Найти их можно на официальном сайте компании. Кроме того, там размещены видеоуроки по C# и рекомендации по разработке приложений в различных областях, от игростроя до бизнеса.

Кстати: Для обучения языку совершенно не обязательно покупать Visual studio. Существует ее бесплатная версия Express, которую можно скачать на сайте Microsoft. Единственное ограничение этой версии программы – невозможность использования в коммерции.

Наверх
Меню