TOC

This article has been localized into Russian by the community.

Основы:

Переменные

Переменные сравнимы с хранилищем и являются основой для любого программиста. В C#, переменные задаются так:

<тип данных><имя>;

к примеру вот так:

string name;

Это наиболее общий вид, но переменной еще не присвоено значение. Вы можете присвоить его позже, или непосредственно во время определения, к примеру вот так:

<data type> <name> = <value>;

Если эта переменная не является локальной для текущего метода (не является членом класса), видимость переменной можно назначить :

<область видимости><тип данных><имя переменной>=<значение>

пример полностью:

private string name = "John Doe";

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

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    string firstName = "John";
    string lastName = "Doe";

    Console.WriteLine("Name: " + firstName + " " + lastName);

    Console.WriteLine("Please enter a new first name:");
    firstName = Console.ReadLine();

    Console.WriteLine("New name: " + firstName + " " + lastName);

    Console.ReadLine();
}
    }
}

Хорошо, большинство из этого уже было объяснено, поэтому мы перейдем прямо к интересной части. Во первых, мы определили пару переменных строкового типа. Строка, как вы можете видеть, содержит текст, который мы задали напрямую. Следующее, мы вывели строку текста, в которой мы использовали 2 переменные, в консоль. Строка получена с использованием символа + для соединения различных частей.

Следующее, мы просим пользователя ввести новое имя, и после этого используем метод ReadLine() для того, чтобы прочитать ввод пользователя с консоли в переменную firstName. Как только пользователь нажимает клавишу Enter, новое имя присваивается переменной, и в следующей строке мы выводим имя снова, чтобы показать изменения. Мы только что использовали нашу первую переменную и самое важное свойство переменной: Возможность изменения значения во время исполнения.

Другой интересный пример - вычисления. Вот пример основанный по большей части на только что использованном нами коде:

int number1, number2;

Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());

Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());

Console.WriteLine("Adding the two numbers: " + (number1 + number2));

Console.ReadLine();

Вставьте код в наш метод Main, и проверьте его. Единственный новый "трюк", использованный здесь - это метод int.Parse(). Он просто читает строку и преобразовывает её в число. Как вы можете видеть, программа не проверяет данные введенные пользователем, и если вы введете что-то, что не является числом, то возникнет исключение. Обо все этом далее.

Переменные & Область видимости переменных

Пока мы использовали только локальные переменные, определяемые и используемые внутри метода. В C# переменная, определенная внутри метода, не может быть использована за пределами этого метода - поэтому ее называют локальной. Если вы знаете другие языки программирования, то знаете о глобальных переменных, доступ к которым можно получить многих мест программы, но в C# концепция глобальных переменных не применяется. Вместо этого вы можете определить в классе поле, к которому можно получить доступ из всех методов этого класса. Позвольте продемонстрировать это на примере:

using System;

namespace VariableScope
{
    class Program
    {
private static string helloClass = "Hello, class!";

static void Main(string[] args)
{
    string helloLocal = "Hello, local!";
    Console.WriteLine(helloLocal);
    Console.WriteLine(Program.helloClass);
    DoStuff();
}

static void DoStuff()
{
    Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
    }
}

Заметьте, член класса helloClass определен в области видимости класса, а не внутри метода - это позволяет нам получить доступ к нему из обоих методов: Main() и DoStuff(). Это не сработает в случае переменной helloLocal, которая определена внутри метода Main() и поэтому может использоваться только внутри самого метода.

Концепция разграничения переменных называется scoping и предотвращает код вашей программы от избыточного количества переменных, которые могут быть изменены из слишком большого количества мест. Другая технология, полезная в этом случае, называется member visibility (в данном случае, представлена примером private), которую мы обсудим в главе о классах.

Резюме

Переменные позволяют нам хранить данные разных типов, например, текстовые строки strings, числа numbers или пользовательские objects. Существуют локальные переменные, которые определены и доступны внутри методов, и такие (поля класса) доступ к которым может быть получен из всех методов класса и за его пределами, если это допускает visibility.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!