C#

Рекламный модуль
Высотная мойка окон. Уборка квартир мойка окон. Мойка окон.

Использование переменных и констант

Одна из основных концепций программ С# - это использование переменных (variable). Считайте переменную участком памяти, в котором можно хранить данные для последующего использования. Это позволит очень просто передавать данные из одного участка программы в другой.

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

namespace Example3
{
    public class Class1
    {
        public static void HelloWorld()
        {
            //Сообщение для отображения содержиться в переменной
            string message = "Привет МИР! (Библиотека классов - переменная)";
            //Вывод в консоли текст переменной
            Console.WriteLine(mesage);
        }
    }
}

Здесь мы определили переменную по имени message типа string (строка текста). Впоследствии, когда мы захотим поместить ее содержимое в код, мы сможем обратиться к переменной message. В этом примере мы помещаем ее содержимое в вызов метода Console.WriteLine(), который работает как было показано. Однако на сей раз мы задали сообщение для отображения в отдельном операторе.

Это очень полезно для нас, но переменные имеют кое что еще. Это нечто называется контекстом (scope). Переменная message имеет контекст уровня метода, это значит, что она доступна только в том методе, в котором она определена. Рассмотрим следующий код.

public static void HelloWorld()
{
    //Сообщение для отображения содержиться в переменной
    string message = "Привет МИР! (Библиотека классов - переменная)";

    //Вывод в консоли текст переменной
    Console.WriteLine(message);
}

public static void DisplayMessageText()
{
    Console.WriteLine("Это текст переменной: ");
    Console.WriteLine(message);
}

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

Чтобы исправить это, переменной message необходим контекст уровня класса Для этого ее следует переместить в начало определения класса (поскольку она используется методами, помеченными как static, она также должна быть статической).

public class Class1
{
    //Сообщение для отображения содержиться в переменной
    static string message = "Привет МИР! (Библиотека классов - переменная)";

    public static void HelloWorld()
    {
        //Вывод в консоли текст переменной
        Console.WriteLine(message);
    }

    public static void DisplayMessageText()
    {
        Console.WriteLine("Это текст переменной: ");
        Console.WriteLine(message);
    }
}

Теперь переменная message доступна всем методам класса Class1. Вы узнаете больше о контексте уровня метода и класса, а также о ключевых словах public и static ниже.

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

//Сообщение для отображения содержиться в константе
const string MESSAGE = "Привет МИР! (Библиотека классов - константа)";

public static void HelloWorld()
{
    //Вывод в консоли текст переменной
    Console.WriteLine(MESSAGE);
}

public static void DisplayMessageText()
{
    Console.WriteLine("Это текст константы: ");
    Console.WriteLine(MESSAGE);
 }

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

//Сообщение для отображения содержиться в константе
const string MESSAGE = "Привет МИР! (Библиотека классов - константа)";

public static void HelloWorld()
{
    //Значение констан менять НЕЛЬЗЯ (код НЕ компилируется)
    MESSAGE = "Прощай МИР";

    //Вывод в консоли текст переменной
    Console.WriteLine(MESSAGE);
}

Теперь, рассмотрев примеры этой главы, давайте скажем несколько слов о том, как среда Visual С# Express фактически превращает ваш код С# в программу, которая может выполняться на операционной системе, подобной Windows.