#basics
№1. Метод Main() и его сигнатура
Стандартной точкой входа для приложений, разработанных на языке C# является статический метод с именем Main.
В большинстве случаев его объявление выглядит следующим образом:
№1. Метод Main() и его сигнатура
Стандартной точкой входа для приложений, разработанных на языке C# является статический метод с именем Main.
В большинстве случаев его объявление выглядит следующим образом:
static void Main(string[] args)
Начиная с C# 7.1 появилась возможность объявлять его в асинхронном виде:static Task<int> Main(string[] args)
@csharp_1001_notes#basics
№2. Минимально возможная программа на C#
Минимально возможная программа на языке C# будет состоять из класса, содержащего статический метод
@csharp_1001_notes
№2. Минимально возможная программа на C#
Минимально возможная программа на языке C# будет состоять из класса, содержащего статический метод
Main()
. using System;При этом namespace и параметр args так же являются необязательными.
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("It's just a start..");
}
}
}
@csharp_1001_notes
#basics
№3. Кто автор языка C#
Язык C# был разработан группой инженеров компании Microsoft для платформы .NET в далёком 2000 году и изначально имел кодовое название COOL (C-style Object Oriented Language).
Главным архитектором является датский инженер-программист Anders Hjelsberg.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java.
@csharp_1001_notes
№3. Кто автор языка C#
Язык C# был разработан группой инженеров компании Microsoft для платформы .NET в далёком 2000 году и изначально имел кодовое название COOL (C-style Object Oriented Language).
Главным архитектором является датский инженер-программист Anders Hjelsberg.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java.
@csharp_1001_notes
X (formerly Twitter)
Anders Hejlsberg (@ahejlsberg) on X
Technical Fellow at Microsoft
#basics
№4. Чем C# отличается от Java
Оба языка программирования являются объектно-ориентированными, унаследовали свой синтаксис от языка Си и исполняются в управляемой среде.
Как бы то ни было, между ними есть и различия. Далее основные из них:
🔶 class B extends A равнозначно class B : A
🔶 В Java отсутствуют namespace
🔶 В C# для синхронизации доступа между потоками используется lock, в то время как в Java synchronized
🔶 Наличие в С# модификатора доступа internal
🔶 Перечисления (enum) в Java являются полноценными классами 😲
🔶 C# позволяет использовать строковые литералы в конструкции switch
🔶 Программы на C# используют .NET Framework, в случае с Java это платформа Java SE.
@csharp_1001_notes
№4. Чем C# отличается от Java
Оба языка программирования являются объектно-ориентированными, унаследовали свой синтаксис от языка Си и исполняются в управляемой среде.
Как бы то ни было, между ними есть и различия. Далее основные из них:
🔶 class B extends A равнозначно class B : A
🔶 В Java отсутствуют namespace
🔶 В C# для синхронизации доступа между потоками используется lock, в то время как в Java synchronized
🔶 Наличие в С# модификатора доступа internal
🔶 Перечисления (enum) в Java являются полноценными классами 😲
🔶 C# позволяет использовать строковые литералы в конструкции switch
🔶 Программы на C# используют .NET Framework, в случае с Java это платформа Java SE.
@csharp_1001_notes
#basics
Чем C# отличается от VB .NET
Оба этих языка являются высокоуровневыми и входят в перечень языков программирования для платформы .NET. В основном их отличия синтаксические, но есть и более значительные.
О последних далее:
Есть в C# (нет в VB .NET):
🔶 Указатели и возможность писать unsafe код
🔶 Статические классы
🔶 Контроль переполнения checked/unchecked
🔶 Чувствительность к регистру (case-sensivity)
🔶 Более строгая проверка типов
🔶 Синтаксический сахар (делает язык менее многословным)
Есть в VB .NET (нет в C#):
🔶 XML литералы
🔶 Вспомогательные методы IsNumeric и PMT
🔶 Inline объявление дат, например #12/31/2000#
🔶 Оператор Like для сравнения строки с шаблоном
От себя замечу, что на сегодняшний день большинство проектов, которые продолжают использовать VB .NET являются скорее legacy (требующие сопровождения и исправления ошибок, нежели активной разработки).
C#, напротив, уверенно занял лидерство в качестве основного языка разработки для платформы .NET 😉
💬 Крайне показательным в этом случае являются результаты опроса на StackOverflow за 2018, в котором 34.4% опрошенных указали, что используют C#, в то время как у VB .NET эта цифра едва дотягивает до 6.8%.
@csharp_1001_notes
Чем C# отличается от VB .NET
Оба этих языка являются высокоуровневыми и входят в перечень языков программирования для платформы .NET. В основном их отличия синтаксические, но есть и более значительные.
О последних далее:
Есть в C# (нет в VB .NET):
🔶 Указатели и возможность писать unsafe код
🔶 Статические классы
🔶 Контроль переполнения checked/unchecked
🔶 Чувствительность к регистру (case-sensivity)
🔶 Более строгая проверка типов
🔶 Синтаксический сахар (делает язык менее многословным)
Есть в VB .NET (нет в C#):
🔶 XML литералы
🔶 Вспомогательные методы IsNumeric и PMT
🔶 Inline объявление дат, например #12/31/2000#
🔶 Оператор Like для сравнения строки с шаблоном
От себя замечу, что на сегодняшний день большинство проектов, которые продолжают использовать VB .NET являются скорее legacy (требующие сопровождения и исправления ошибок, нежели активной разработки).
C#, напротив, уверенно занял лидерство в качестве основного языка разработки для платформы .NET 😉
💬 Крайне показательным в этом случае являются результаты опроса на StackOverflow за 2018, в котором 34.4% опрошенных указали, что используют C#, в то время как у VB .NET эта цифра едва дотягивает до 6.8%.
@csharp_1001_notes
❇️ Рабочая неделя заканчивается, а значит у нас будет больше времени поломать голову и поразбираться с нюансами языка C#.
Предлагаю вашему внимаю самые 🔥 интересные вопросы этой недели:
🔶 Readonly struct vs classes
🔶 Why is the call ambiguous?
🔶 What happens when creating a variable?
🔶 Random values seem to be not really random?
Всем хороших и плодотворных выходных 👍
#sof_weekly
Предлагаю вашему внимаю самые 🔥 интересные вопросы этой недели:
🔶 Readonly struct vs classes
🔶 Why is the call ambiguous?
🔶 What happens when creating a variable?
🔶 Random values seem to be not really random?
Всем хороших и плодотворных выходных 👍
#sof_weekly
Stack Overflow
Readonly struct vs classes
Assuming you only have immutable types
and you have all your code up to date to C# 7.3 and your methods are using the in keyword for inputs
Why would you ever use a class instead of a readonly str...
and you have all your code up to date to C# 7.3 and your methods are using the in keyword for inputs
Why would you ever use a class instead of a readonly str...