English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Уровень 1 уроки C#

Уровень 2 уроки C#

Ориентированное на объекты программирование (OOP) C#

Классы (Class) в C#

Классы можно сравнить с чертежом конкретного объекта. В реальном мире каждый объект имеет определенные цвета, формы и функции - например, роскошный спорткар Ferrari. Ferrari - это объект типа роскошных автомобилей. Роскошные автомобили - это класс, который указывает на某些 характеристики, такие как скорость, цвет, форма, интерьер и т.д. Таким образом, любая компания, производящая автомобили, которые удовлетворяют этим требованиям, является объектом класса роскошных автомобилей. Например, каждая машина BMW, Lamborghini, Cadillac - это объект класса роскошных автомобилей. Здесь «роскошные автомобили» - это класс, и каждое физическое авто - это объект класса роскошных автомобилей.

Таким образом, в面向对象的 программировании класс определяет некоторые свойства, поля, события, методы и т.д. Класс определяет тип данных и функции, которые будут иметь объекты.

Класс позволяет создавать пользовательские типы, группируя переменные других типов, методов и событий.

В C# класс можно определить с использованием ключевого слова class.

public class MyClass
{
    public string  myField = string.Empty;
    public MyClass()
    {
    {}
    public void MyMethod(int parameter1, string parameter2)
    {
        Console.WriteLine("First Parameter {0}, second parameter {1}", parameter1, parameter2);
    {}
    public int MyAutoImplementedProperty { get; set; }
    private int myPropertyVar;
    
    public int MyProperty
    {
        get { return myPropertyVar; }
        set { myPropertyVar = value; }
    {} 
{}

На следующем рисунке показаны важные компоненты класса C#.

Класс C#

Модификаторы доступа C#

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

Поле C#

Это поле является классовой переменной с значением. Обычно, член поля должен иметь私有ный модификатор доступа и использоваться вместе с свойствами.

Конструктор C#

Класс может иметь параметризованный или непараметризованный конструктор. При создании экземпляра класса вызывается конструктор. Конструктор можно определить с использованием修饰ителей доступа и имени класса:

<access modifiers> <class name>(){  }
class MyClass
{
    public MyClass()
    {
    {}
{}

Метод C#

Метод может быть определен с использованием следующей шаблонной строки:

{access modifier} {return type} MethodName({parameterType parameterName})
public void MyMethod(int parameter1, string parameter2)
{
    // В этом месте пишите код вашего метода. 
{}

Свойства

Свойства можно определить с помощью getter и setter, как показано ниже:

private int _myPropertyVar;
public int MyProperty
{
    get { return _myPropertyVar; }
    set { _myPropertyVar = value; }
{}

Свойства

Вы также можете использовать логику в get и set, как показано в следующем примере.

private int _myPropertyVar;
public int MyProperty
{
    get {
        return _myPropertyVar / 2;
    {}
    set {
        if (value > 100)
            _myPropertyVar = 100;
        else
            _myPropertyVar = value; ;
    {}
{}

Автоматически реализованные свойства

С версии C# 3.0 вы можете легко声明 свойства, не применяя логику в get или set.

Ниже приведен пример автоматически реализованных свойств:

public int MyAutoImplementedProperty { get; set; }

Обратите внимание, что в примерах свойств выше нет私有ных резервных полей. Поддерживаемые поля будут автоматически созданы компилятором. Вы можете использовать автоматические свойства так же, как и обычные свойства класса. Автоматически реализованные свойства предназначены только для легкого объявления свойств, когда в доступителях свойств не требуется дополнительная логика.

Пространство имен

Пространство имен является контейнером для группы связанных классов и пространств имен. Пространство имен также используется для предоставления уникальных имен классам в пределах пространства имен. Пространства имен и классы обозначаются точкой (.).

В C# можно использовать ключевое слово namespace для определения пространства имен.

namespace CSharpTutorials
{
    class MyClass
    {
    {}
{}

В примере выше полное имя класса MyClass — CSharpTutorials.MyClass.

Пространства имен могут содержать другие пространства имен. Внутренние пространства имен можно разделить точкой (.).

namespace CSharpTutorials.Examples
{
    class MyClassExample
    {
    {}
{}

В примере выше полное имя класса MyClassExample — CSharpTutorials.Examples.MyClassExample。