Store and Retrieve Data Using Literal and Variable Values in C#
C# is a strongly typed language, meaning that every variable must be declared with a specific type, and values assigned to it must be compatible with that type.

Question
Which of the following lines of code creates a variable correctly?
Try to answer this question first on freeCodeCamp .
Option 1
int x = 12.3m;Here, we’re declaring a variable x of type
int
. The key point to remember is that int is used for whole numbers not decimals.
We’re then trying to assign it to the value 12.3m. The presence of a decimal point makes this a
floating-point
value, and the m suffix is the literal for a decimal.
C# is a strongly typed language
and enforces type safety. Assigning a decimal value to an int variable is not allowed as it would lead to data loss. This kind of mismatch causes a compiler error.
This is incorrect.
Option 2
decimal x = 12.3m;Here, we’re declaring a variable x of type
decimal
and assign the literal 12.3m. The m suffix is the literal for a decimal. This tells the compiler this is a decimal, not a double (which would be the default for floating-point literals without a suffix).
This is the correct answer.
Option 3
bool x = 'False';Here, we’re declaring a variable x of type
bool
.
A bool can can either be true or false.
Next we assign x to the value 'False' enclosed in single quotes which in C# denotes a
char
(a single character).
Since 'False' is actually multiple characters, this won’t compile either.
If you wanted to assign a bool with the value false, you would write:
bool x = false;This is incorrect.