English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Классы можно сравнить с чертежом конкретного объекта. В реальном мире каждый объект имеет определенные цвета, формы и функции - например, роскошный спорткар 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#. Мы рассмотрим это в разделе ключевых слов.
Это поле является классовой переменной с значением. Обычно, член поля должен иметь私有ный модификатор доступа и использоваться вместе с свойствами.
Класс может иметь параметризованный или непараметризованный конструктор. При создании экземпляра класса вызывается конструктор. Конструктор можно определить с использованием修饰ителей доступа и имени класса:
<access modifiers> <class name>(){ }
class MyClass { public MyClass() { {} {}
Метод может быть определен с использованием следующей шаблонной строки:
{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。