- •Основы c#. Урок 1. Что такое c#?
- •Основы c#. Урок 2. Что такое net Runtime?
- •Основы c#. Урок 3. Первая программа на c#
- •Основы c#. Урок 4. Переменные языка c#
- •Основы c#. Урок 5. Логические операторы
- •Основы c#. Урок 6. Массивы в c#
- •Основы c#. Урок 7. Операторы if и switch
- •Основы c#. Урок 8. Циклы for и foreach
- •Основы c#. Урок 9. Цикл while
- •Основы c#. Урок 10. Классы в c#
- •Основы c#. Урок 11. Конструкторы классов
- •Основы c#. Урок 12. Наследование
- •Основы c#. Урок 13. Запись в экземпляр базового класса экземпляра производного
- •Основы c#. Урок 14. Вложенные классы
- •Основы c#. Урок 15. Перегрузка бинарных операторов
- •Основы c#. Урок 16. Перегрузка унарных операторов
- •Основы c#. Урок 17. Область видимости
- •Основы c#. Урок 18. Виртуальные функции
- •Основы c#. Урок 19. Абстрактные классы
- •Основы c#. Урок 20. Запрещение наследования или модификатор sealed
- •Основы c#. Урок 21. Статические переменные
- •Основы c#. Урок 22. Статические методы класса
- •Основы c#. Урок 23. Статические конструкторы
- •Основы c#. Урок 24. Закрытые конструкторы или классы без экземпляров
- •Основы c#. Урок 25. Передача параметров переменой длины
- •Основы c#. Урок 26. Строки (класс System.String)
- •Основы c#. Урок 27. Строки (класс StringBuilder)
- •Основы c#. Урок 28. Передача параметров по ссылке и по значению (ref и out)
- •Основы c#. Урок 29. Пример передачи по ссылке
- •Основы c#. Урок 30. Перегрузка
- •Основы c#. Урок 31. Функции класса System.Array
- •Основы c#. Урок 33. События
- •Основы c#. Урок 35. Введение в атрибуты
- •Основы c#. Урок 36. Пример пользовательского атрибута.
- •Основы c#. Урок 37. Параметры командной строки
- •Основы c#. Урок 38. Метод Main в отдельном классе
- •Основы c#. Урок 39. Форматированный вывод
- •Основы c#. Урок 40. Класс System.Object
- •Основы c#. Урок 41. Методы класса System.Object
- •Основы c#. Урок 42. Переопределяем методы класса System.Object
- •Основы c#. Урок 43. Константы
- •Основы c#. Урок 44. Модификаторы доступа
- •Основы c#. Урок 45. Ссылка на текущий экземпляр класса (this)
- •Основы c#. Урок 47. Работаем со специальными папками
- •Основы c#. Урок 48. Получаем список всех дисков
- •Основы c#. Урок 49. Ввод/вывод в c# (System.Io)
- •Основы c#. Урок 50. Классы для работы с папками и файлами
- •Основы c#. Урок 51. Класс Directory
- •Основы c# Урок 52. Класс File
- •Основы c# Урок 53. Класс FileSystemInfo
- •Основы c# Урок 54. Класс DirectoryInfo
- •Основы c# Урок 55. Перечисление FileAttributes
- •Основы c# Урок 56. Класс FileInfo
- •Основы c# Урок 57. Пример: получение имен всех подпапок
Основы c#. Урок 43. Константы
Константы удобны использовать для величин, которые в программе не меняются. Использование констант позволяет изменить некоторую величину везде в программе за пару секунд - легче изменить значение в одном месте, чем по всей программе.
Константа определяется ключевым словом const. Вот пример:
classMyClass
{
//Объявление константы.
public const int SomeValue=20;
...
}
Обратите внимание, что константы, как и все в C#, определяется в классе.
Часто в программе заводят некоторый вспомогательный класс, главное предназначение которого - это хранение в одном месте всех констант программы. Например, такой класс может выглядеть так:
abstract class Constants
{
public const int SomeValue1=20;
public const int SomeValue2=100;
public const double SomeValue3=0.35;
}
Мы этот класс проеделили как абстрактный (см. урок 19) для того, чтобы нельзя было создавать экземпляры этого класса. Он используется у нас только для хранения констант.
Использовать этот класс можно так:
class App
{
static void Main()
{
double z;
z=Constants.SomeValue2 * Constants.SomeValue3;
Console.WriteLine("z={0}", z); //Выведется 35.
}
}
Основы c#. Урок 44. Модификаторы доступа
Члены класса (поля, методы и т. п.) могут иметь разные модификаторы доступа. Вот они:
Модификатор доступа |
Описание |
public |
Доступность откуда угодно. |
private |
Доступность только из этого же самого класса (по умолчанию). |
protected |
Доступность только из этого же самого класса или его потомков. |
internal |
Доступность из любого класса той же программы. |
protected internal |
Доступность или из любого класса той же программы или из этого же самого класса или его потомков (т. е.или как protected или как internal) |
Модификаторы доступа пишутся первыми - перед всеми другими коючевыми словами (например, типом переменной). Модификатор static может стоять как перед модификатором доступа, так и после:
...
static public int a;
public static int b;
...
В отличие от C/C++ модификаторы доступа пишутся для любого члена класса (как в Java):
class SomeClass
{
//Правильно.
public void f1()
{
//...
}
public void f2()
{
//...
}
...
Основы c#. Урок 45. Ссылка на текущий экземпляр класса (this)
Ссылка на текущий экземпляр класса делается через ключевое слово this. Вот традиционный пример:
class SomeClass
{
public int a;
SomeClass(int a)
{
this.a=a;
}
}
В этом примере у нас и переменная класса, и параметр метода названы одинаково - a. Для уточнения, что мы используем именно переменную класса, а не параметр метода, и служит слово this.
В C++ же для избегания конфликта имен обычно к переменной класса прибывлялся префикс m_.
Еще одна возможность по использованию ключевого слова this - это вызов одного конструктора из другого. Вот пример:
class SomeClass
{
public int a;
public int b;
//Конструктор с 2-я параметрами.
public SomeClass(int a, int b)
{
this.a=a;
this.b=b;
}
//Конструктор без параметров,
//вызывающий конструктор с 2-я параметрами.
public SomeClass():this(1, 1)
{
}
}
//Тестовый класс.
classApp
{
static void Main()
{
SomeClass s=new SomeClass();
Console.WriteLine("a={0}, b={0}", s.a, s.b);
}
}
Здесь в классе SomeClass два конструктора. Второй конструктор (без параметров) вызывает первый (передавая в него значения 1 и 1):
...
public SomeClass():this(1, 1)
...
Указанный фрагмент выведет, разумеется, a=1, b=1.