C# Переменная

Переменная — это всего лишь имя, присвоенное области хранения, которой может управлять программа.

В C# переменная — это идентификатор, используемый для хранения и представления данных. При объявлении переменной необходимо указать тип переменной и, при необходимости, можно присвоить ей начальное значение.

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

Мы уже обсудили различные типы данных. Базовые типы значений, предоставляемые в C#, можно условно разделить на следующие категории:

TypeПример
Целочисленные типыsbyte, byte, short, ushort, int, uint, long, ulong и char
Тип с плавающей запятойfloat, double
Тип Decimaldecimal
Логический типзначение true или false, указанное значение
Пустая строка string
пустой типТипы данных, допускающие значение NULL

C# позволяет определять переменные других типов значений, таких какenum, а также позволяет определять переменные ссылочных типов, таких какclass. Они будут рассмотрены в следующих главах. В этой главе мы изучаем только базовые типы переменных.

В C# 4.0 был введён тип dynamic, который позволяет выводить тип переменной во время выполнения. Это полезно в некоторых особых случаях, но обычно лучше использовать статические типы для лучшей производительности и проверки типов во время компиляции.

dynamic dynamicVariable = "This can be any type";

Определение переменных в C#

Синтаксис определения переменных в C#:

<data_type> <variable_list>;

Здесь data_type должен быть допустимым типом данных C#, который может быть char, int, float, double или другим определяемым пользователем типом данных. variable_list может состоять из одного или нескольких имён идентификаторов, разделённых запятыми.

Ниже показаны некоторые допустимые определения переменных:

int i, j, k;
char c, ch;
float f, salary;
double d;

Можно инициализировать во время определения переменной:

int i = 100;

Соглашения об именовании переменных

В C# при именовании переменных нужно соблюдать некоторые правила:

  • Имена переменных могут содержать буквы, цифры и знаки подчёркивания.
  • Имена переменных должны начинаться с буквы или знака подчёркивания.
  • Имена переменных чувствительны к регистру.
  • Избегайте использования ключевых слов C# в качестве имен переменных.
int myVariable = 10;
string _userName = "John";

Инициализация переменных в C#

Переменные инициализируются (им присваивается значение) путем указания после знака равенства константного выражения. Общая форма инициализации такова:

variable_name = value;

Переменные можно инициализировать (задать начальное значение) во время объявления. Инициализация состоит из знака равенства, за которым следует константное выражение, как показано ниже:

<data_type> <variable_name> = value;

Несколько примеров:

int d = 3, f = 5;    /* 初始化 d 和 f. */
byte z = 22;         /* 初始化 z. */
double pi = 3.14159; /* 声明 pi 的近似值 */
char x = 'x';        /* 变量 x 的值为 'x' */

Правильная инициализация переменных — хорошая программистская привычка; в противном случае программа иногда может выдавать неожиданные результаты.

Рассмотрим следующий пример, в котором используются переменные различных типов:

Пример

using System;
namespace VariableDefinition
{
    class Program
    {
        static void Main(string[] args)
        {
            short a;
            int b ;
            double c;

            /* Фактическая инициализация */
            a = 10;
            b = 20;
            c = a + b;
            Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
            Console.ReadLine();
        }
    }
}

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

a = 10, b = 20, c = 30

Получение значений от пользователя

В пространстве имен Systemкласс Consoleпредоставляет функциюReadLine(), используемую для получения ввода от пользователя и сохранения его в переменной., used to receive input from the user and store it in a variable.

Например:

int num;
num = Convert.ToInt32(Console.ReadLine());

ФункцияConvert.ToInt32()преобразует введенные пользователем данные в тип данных int, потому чтоConsole.ReadLine()принимает только данные в строковом формате.

Lvalue и rvalue в C#

Два типа выражений в C#:

  1. lvalue: Выражение lvalue может находиться в левой или правой части оператора присваивания.

  2. rvalue: Выражение rvalue может находиться в правой части оператора присваивания, но не может находиться в левой части.

Переменные являются lvalue, поэтому они могут находиться в левой части оператора присваивания. Числовые значения являются rvalue, поэтому им нельзя присвоить значение и они не могут находиться в левой части оператора присваивания. Следующий оператор является допустимым:

int g = 20;

Следующий оператор является недопустимым и вызовет ошибку времени компиляции:

10 = 20;
Другие расширения