Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Prog_Guide.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
6.22 Mб
Скачать

Объекты, классы и структуры

В языке C# классы (и иногда структуры) используются для определения собственных типов. Пользовательские типы могут содержать любое сочетание встроенных числовых типов, строк, переменных других типов, методов и событий. В большинстве случае классы и структуры определяются непосредственно в пространстве имен, хотя их можно также помещать в другие классы и структуры. После определения типа в виде класса или структуры в коде можно создавать и использовать переменные этого типа. Такие переменные называются экземплярами или объектами (если только класс или структура не были определены как статические).

В следующем примере на верхнем уровне пространства имен ProgrammingGuide определен класс MyCustomClass, содержащий три члена. Экземпляр (объект) класса MyCustomClass создается в методе Main класса Program, а для доступа к методам и свойствам используется точечная нотация.

namespace ProgrammingGuide

{

// Class definition.

public class MyCustomClass

{

// Class members:

// Property.

public int Number { get; set; }

// Method.

public int Multiply(int num)

{

return num * Number;

}

// Instance Constructor.

public MyCustomClass()

{

Number = 0;

}

}

// Another class definition. This one contains

// the Main method, the entry point for the program.

class Program

{

static void Main(string[] args)

{

// Create an object of type MyCustomClass.

MyCustomClass myClass = new MyCustomClass();

// Set the value of a public property.

myClass.Number = 27;

// Call a public method.

int result = myClass.Multiply(4);

}

}

}

Общие сведения

Дополнительные сведения о классах см. в разделе Классы. Дополнительные сведения о различиях между структурами и классами и причинах, по которым в большинстве случаев рекомендуется использовать для создания собственных типов классы, а не структуры, см в разделах Структуры и Определение различия между передачей структуры и ссылки класса в метод.

Члены

В следующем списке перечислены все возможные типы членов, которые можно объявлять в классах и (в некоторых случаях) в структурах.

  • Константы

  • Поля

  • Методы

  • Свойства

  • События

  • Индексаторы

  • Операторы

  • Конструкторы

  • Деструкторы

  • Вложенные типы

Доступность

Разработчики могут устанавливать уровень доступности типов и их членов для остального кода. Дополнительные сведения см. в разделе Модификаторы доступа.

Наследование

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

Классы можно определять как абстрактные (abstract), что будет означать, что один или несколько их членов не имеют реализации. Явным образом создавать экземпляры абстрактных классов невозможно, но эти классы можно использовать в качестве базовых для других классов, в которых недостающие элементы будут реализованы. Классы также могут объявляться запечатанными (sealed), чтобы от них нельзя было наследовать новые классы. Дополнительные сведения см. в разделе Абстрактные и запечатанные классы и члены классов.