C# Базовый синтаксис
C# — объектно-ориентированный язык программирования. В методологии объектно-ориентированного программирования программа состоит из различных взаимодействующих объектов. Объекты одного вида обычно имеют один и тот же тип или, иными словами, находятся в одном классе.
Например, возьмём объект Rectangle. У него есть свойства length и width. В зависимости от проектирования ему может потребоваться принять значения этих свойств, вычислить площадь и отобразить сведения.
Давайте посмотрим на реализацию класса Rectangle и используем её для обсуждения базового синтаксиса C#:
Пример
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#:
| Зарезервированные ключевые слова | ||||||
| abstract | as | base | bool | break | байт | case |
| catch | char | checked | класс | const | continue | decimal |
| default | delegate | do | double | else | enum | event |
| explicit | extern | false | finally | fixed | float | for |
| foreach | goto | if | implicit | in | in (универсальный модификатор) | int |
| interface | internal | является | lock | long | namespace | новый |
| null | объект | operator | out | out (generic модификатор) | override | params |
| private | protected | public | readonly | ref | return | sbyte |
| sealed | short | sizeof | stackalloc | static | string | struct |
| switch | this | throw | истина | try | typeof | uint |
| ulong | unchecked | unsafe | ushort | using | virtual | void |
| volatile | while | |||||
| Контекстные ключевые слова | ||||||
| добавьте | alias | ascending | descending | dynamic | from | get |
| global | group | into | join | let | orderby | partial (type) |
| partial (method) | remove | select | set | |||
Инструкции верхнего уровня
В C# 9.0 была введена концепция инструкций верхнего уровня. Это новая парадигма программирования, которая позволяет разработчикам писать инструкции непосредственно на верхнем уровне файла, без необходимости оборачивать их в методы или классы.
Возможности:
-
Не требуется класс или метод: инструкции верхнего уровня позволяют писать код непосредственно на верхнем уровне файла без определения классов или методов.
-
Файл как точка входа: файл, содержащий инструкции верхнего уровня, рассматривается как точка входа программы, аналогично предыдущим версиям C#.
Mainметод. -
Автоматические
MainМетоды: компилятор автоматически создаётMainметод и принимает инструкции верхнего уровня в качествеMainтела метода. -
Поддержка локальных функций: хотя нет необходимости определять класс, локальные функции по-прежнему можно определять в файле с инструкциями верхнего уровня.
-
Лучшая читаемость⟦⟧: Для простых скриптов или инструментов инструкции верхнего уровня обеспечивают лучшую читаемость и краткость.: For simple scripts or tools, top-level statements provide better readability and conciseness.
-
Подходит для небольших проектов: Инструкции верхнего уровня очень хорошо подходят для небольших проектов или скриптов, позволяя быстро писать и программировать код.
-
Совместимость с существующим кодом: Инструкции верхнего уровня можно использовать с существующими кодовыми базами C# без влияния на существующий код.
Традиционный код C#- До использования инструкций верхнего уровня вам приходилось писать программу на C# так:
Пример
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
Код C# с использованием инструкций верхнего уровня- С инструкциями верхнего уровня это можно упростить до:
Пример
Console.WriteLine("Hello, World!");
Инструкции верхнего уровня поддерживают все распространённые синтаксические конструкции C#, включая объявление переменных, определение методов, обработку исключений и т.д.
Пример
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, и файл становится точкой входа программы.
- Ограничения области видимости:Код в инструкциях верхнего уровня находится в глобальной области видимости, то есть переменные и методы, определённые в инструкциях верхнего уровня, доступны во всём файле.
Инструкции верхнего уровня имеют значительные преимущества в упрощении структуры кода, снижении сложности обучения и ускорении разработки, и особенно подходят для написания простых программ и скриптов.
Другие расширения