C# Базовый синтаксис

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

Например, возьмём объект Rectangle. У него есть свойства length и width. В зависимости от проектирования ему может потребоваться принять значения этих свойств, вычислить площадь и отобразить сведения.

Давайте посмотрим на реализацию класса Rectangle и используем её для обсуждения базового синтаксиса C#:

Пример

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // Переменные-члены
        double length;
        double width;
        public void Acceptdetails()
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Длина: {0}", length);
            Console.WriteLine("Ширина: {0}", width);
            Console.WriteLine("Площадь: {0}", GetArea());
        }
    }
   
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Отобразить();
            Console.ReadLine();
        }
    }
}

Попробуйте сами »

Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:

Length: 4.5
Width: 3.5
Area: 15.75

usingKeywords

Первая инструкция в любой программе на C#:

using System;

usingКлючевое слово используется для включения пространства имен в программу. Программа может содержать несколько инструкций using.

classKeywords

classКлючевое слово используется для объявления класса.

Комментарии в C#

Комментарии используются для объяснения кода. Компилятор игнорирует записи комментариев. В программах на C# многострочные комментарии начинаются с/*Начинаются с символа*/Завершаются, как показано ниже:

/* 这个程序演示
C# 的注释
使用 */

Однострочные комментарии используют//символьное представление. Например:

// This line is a comment

Переменная-член

Переменные — это свойства или элементы данных класса, используемые для хранения данных. В приведенной выше программе классRectangleимеет две переменные-члены с именамиlengthиwidth。

Функция-член

Функция — это последовательность инструкций, выполняющих определенную задачу. Функции-члены класса объявляются внутри класса. Наш пример класса Rectangle содержит три функции-члена: AcceptDetails、GetAreaиDisplay。

Создание экземпляра класса

В приведённой выше программе классExecuteRectangle— это тот, который содержитMain() Методы и создание экземпляраRectangleКласс класса.

Идентификаторы

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

  • Идентификаторы должны начинаться с буквы, подчеркивания или@начинаться с буквы, за которой следует последовательность букв, цифр (0 - 9), подчеркиваний (_) и @.
  • Первый символ в идентификаторе не может быть цифрой.
  • Идентификаторы не должны содержать встроенные пробелы или символы, такие как ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \.
  • Идентификаторы не могут быть ключевыми словами C#, если у них нет префикса @. Например, @if — допустимый идентификатор, а if — нет, потому что if — ключевое слово.
  • Идентификаторы должны учитывать регистр. Прописные и строчные буквы считаются разными буквами.
  • Не должны совпадать с именами классов библиотеки C#.

Ключевые слова C#

Ключевые слова — это предопределённые зарезервированные слова для компилятора C#. Эти ключевые слова нельзя использовать в качестве идентификаторов. Однако, если вы хотите использовать эти ключевые слова в качестве идентификаторов, можно поставить перед ключевым словом символ @.

В C# некоторые ключевые слова имеют особое значение в контексте кода, например get и set; они называются контекстными ключевыми словами.

В следующей таблице перечислены зарезервированные ключевые слова и контекстные ключевые слова в C#:

Зарезервированные ключевые слова
abstractasbaseboolbreakбайтcase
catchcharcheckedклассconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinin (универсальный
модификатор)
int
interfaceinternalявляетсяlocklongnamespaceновый
nullобъектoperatoroutout
(generic
модификатор)
overrideparams
privateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstruct
switchthisthrowистинаtrytypeofuint
ulonguncheckedunsafeushortusingvirtualvoid
volatilewhile
Контекстные ключевые слова
добавьтеaliasascendingdescendingdynamicfromget
globalgroupintojoinletorderbypartial
(type)
partial
(method)
removeselectset

Инструкции верхнего уровня

В C# 9.0 была введена концепция инструкций верхнего уровня. Это новая парадигма программирования, которая позволяет разработчикам писать инструкции непосредственно на верхнем уровне файла, без необходимости оборачивать их в методы или классы.

Возможности:

  • Не требуется класс или метод: инструкции верхнего уровня позволяют писать код непосредственно на верхнем уровне файла без определения классов или методов.

  • Файл как точка входа: файл, содержащий инструкции верхнего уровня, рассматривается как точка входа программы, аналогично предыдущим версиям C#.Mainметод.

  • АвтоматическиеMainМетоды: компилятор автоматически создаётMainметод и принимает инструкции верхнего уровня в качествеMainтела метода.

  • Поддержка локальных функций: хотя нет необходимости определять класс, локальные функции по-прежнему можно определять в файле с инструкциями верхнего уровня.

  • Лучшая читаемость⟦⟧: Для простых скриптов или инструментов инструкции верхнего уровня обеспечивают лучшую читаемость и краткость.: For simple scripts or tools, top-level statements provide better readability and conciseness.

  • Подходит для небольших проектов: Инструкции верхнего уровня очень хорошо подходят для небольших проектов или скриптов, позволяя быстро писать и программировать код.

  • Совместимость с существующим кодом: Инструкции верхнего уровня можно использовать с существующими кодовыми базами C# без влияния на существующий код.

Традиционный код C#- До использования инструкций верхнего уровня вам приходилось писать программу на C# так:

Пример

using System;

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

Код C# с использованием инструкций верхнего уровня- С инструкциями верхнего уровня это можно упростить до:

Пример

using System;

Console.WriteLine("Hello, World!");

Инструкции верхнего уровня поддерживают все распространённые синтаксические конструкции C#, включая объявление переменных, определение методов, обработку исключений и т.д.

Пример

using System;
using System.Linq;

// Объявления переменных в инструкциях верхнего уровня
int number = 42;
string message = "The answer to life, the universe, and everything is";

// Вывод переменной
Console.WriteLine($"{message} {number}.");

// определение и вызов методов
int Add(int a, int b) => a + b;
Console.WriteLine($"Сумма 1 и 2 равна {Add(1, 2)}.");

// использование LINQ
var numbers = new[] { 1, 2, 3, 4, 5 };
var evens = numbers.Where(n => n % 2 == 0).ToArray();
Console.WriteLine("Чётные числа: " + string.Join(", ", evens));

// Обработка исключений
try
{
    int zero = 0;
    int result = number / zero;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Ошибка: " + ex.Message);
}

Примечания

  • Ограничения на файлы:Инструкции верхнего уровня можно использовать только в одном исходном файле. Если в проекте несколько файлов используют инструкции верхнего уровня, это вызовет ошибку компиляции.
  • Точка входа программы:Если используются инструкции верхнего уровня, файл неявно содержит метод Main, и файл становится точкой входа программы.
  • Ограничения области видимости:Код в инструкциях верхнего уровня находится в глобальной области видимости, то есть переменные и методы, определённые в инструкциях верхнего уровня, доступны во всём файле.

Инструкции верхнего уровня имеют значительные преимущества в упрощении структуры кода, снижении сложности обучения и ускорении разработки, и особенно подходят для написания простых программ и скриптов.

Другие расширения