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

Интерфейсы

Классы и структуры способны наследовать различным интерфейсам. Наследование интерфейсу означает, что в этом типе реализованы все методы, определенные в интерфейсе. Дополнительные сведения см. в разделе Интерфейсы.

Универсальные типы

Классы и структуры можно определять с одним или несколькими параметрами типов. Тип указывается в клиентском коде при создании экземпляра данного типа. Например, класс List<(Of <(T>)>) пространства имен System.Collections.Generic определен с одним параметром. При создании экземпляра List<string> или List<int> указывается тип значений, которые можно будет хранить в этом списке. Дополнительные сведения см. в разделе Универсальные шаблоны.

Статические типы

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

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

Определение класса или структуры может быть вложено в определение другого класса или структуры. Дополнительные сведения см. в разделе Вложенные типы.

Разделяемый класс

Существует возможность определить часть класса в одном файле с кодом, а другую часть этого же класса — в другом файле с кодом. Дополнительные сведения см. в разделе Разделяемые классы и методы

Инициализаторы объектов

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

Анонимные типы

В случаях, когда создавать именованный класс неудобно или не требуется, например, при заполнении списка структурами данных, которые не нужно сохранять или передавать другому методу, используются анонимные типы. Дополнительные сведения см. в разделе Анонимные типы.

Методы расширения

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

Неявно типизированные локальные переменные

Внутри метода класса можно использовать неявную типизацию, чтобы тип определялся во время компиляции. Дополнительные сведения см. в разделе Неявно типизированные локальные переменные.

Objects

Objects are programming constructs that have data, behavior, and identity. Object data is contained in the fields, properties, and events of the object, and object behaviors are defined by the methods and interfaces of the object.

Objects have identity — two objects with the same set of data are not necessarily the same object.

Objects in C# are defined through classes and structs — these form the single blueprint from which all objects of that type operate.

Objects Overview

Objects have the following properties:

  • Everything you use in C# is an object, including Windows Forms and controls.

  • Objects are instantiated; that is, they are created from templates defined by classes and structs.

  • Objects use Properties to obtain and change the information they contain.

  • Objects often have methods and events that allow them to perform actions.

  • Visual Studio provides tools for manipulating objects: the Properties Window allows you to change the attributes of objects such as Windows Forms. The Object Browser allows you to examine the contents of an object.

  • All C# objects inherit from the Object.