C# Variables

Variables are containers for storing data values. 
In C#, there are different types of variables (defined with different keywords), for example:
int - stores integers (whole numbers), without decimals, such as 123 or -123
double - stores floating point numbers, with decimals, such as 19.99 or -19.99
char - stores single characters, such as 'a' or 'B'. 
 Char values are surrounded by single quotes
string - stores text, such as "Hello World". 
 String values are surrounded by double quotes
bool - stores values with two states: 
 true or false
To create a variable, you must specify the type and assign it a value:
type variableName = value;

Where type is a C# type (such as int or string), and 
variableName is the name of the variable (such as x or
name). The equal sign is used to assign values to the variable.
To create a variable that should store text, look at the following example:
Create a variable called name of type string and assign it the value "John":
string name = "John";
Console.WriteLine(name);


Try it Yourself »

To create a variable that should store a number, look at the following example:
Create a variable called myNum of type int and assign it the value 15:
int myNum = 15;
Console.WriteLine(myNum);


Try it Yourself »

You can also declare a variable without assigning the value, and assign the value later:
int myNum;
myNum = 15;
Console.WriteLine(myNum);


Try it Yourself »

Note that if you assign a new value to an existing variable, it will overwrite the previous value:
Change the value of myNum to 20:
int myNum = 15;
myNum = 20; // myNum is now 20
Console.WriteLine(myNum);

Try it Yourself »

However, you can add the const keyword if you don't want others (or yourself) to overwrite existing values (this will declare the variable as "constant", which means unchangeable and read-only):
const int myNum = 15;
myNum = 20; // error


Try it Yourself »

The const keyword is useful when you want a variable to always store the same value, so that others (or yourself) won't mess up your code. An example that is often referred to as a constant, is PI (3.14159...).
Note: You cannot declare a constant variable without assigning the value. If you do, an error will occur: A const field requires a value to be provided.
A demonstration of how to declare variables of other types:
int myNum = 5;
double myDoubleNum = 5.99D;
char myLetter = 'D';
bool myBool = true;
string myText = "Hello";

You will learn more about data types in the next chapter.
The WriteLine() method is often used to 
display variable values to the console window.
To combine both text and a variable, use the + character:
string name = "John";
Console.WriteLine("Hello " + name);


Try it Yourself »

You can also use the + character to add a variable to another variable:
string firstName = "John ";
string lastName = "Doe";
string fullName = firstName + lastName;
Console.WriteLine(fullName);


Try it Yourself »

For numeric values, the + character works as a mathematical operator (notice that we use int (integer) variables here):
int x = 5;
int y = 6;
Console.WriteLine(x + y); // Print the value of x + y


Try it Yourself »

From the example above, you can expect:
x stores the value 5
y stores the value 6
Then we use the WriteLine() method to display the value of x + y, 
 which is 11
To declare more than one variable of the same type, use a comma-separated list:
int x = 5, y = 6, z = 50;
Console.WriteLine(x + y + z);


Try it Yourself »

You can also assign the same value to multiple variables in one line:
int x, y, z;
x = y = z = 50;
Console.WriteLine(x + y + z);

Try it Yourself »

All C# variables must be
identified with unique names.
These unique names are called identifiers.
Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume).
Note: It is recommended to use descriptive names in order to 
create understandable and maintainable code:
// Good
int minutesPerHour = 60;

// OK, but not so easy to understand what m actually is
int m = 60;


Try it Yourself »

The general rules for naming variables are:
Names can contain letters, digits and the underscore character (_)
Names must begin with a letter
Names should start with a lowercase letter and it cannot contain whitespace
Names are case sensitive ("myVar" and "myvar" are different variables)
Reserved words (like C# keywords, such as int or 
  double) cannot be used as names
Create a variable named myNum and assign the value 50 to it.
  = ;

Start the Exercise
We just launchedW3Schools videos
Get certifiedby completinga course today!
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
help@w3schools.com
Your message has been sent to W3Schools.