变量是赋予存储位置的符号名称。变量用于将数据存储在计算机程序中。
如何在C#中声明变量?
这是在C#中声明变量的示例。
int age;
在此示例中,声明了一个类型为int
(integer)的变量age ,并且它只能存储整数值。
我们可以稍后在程序中为变量分配一个值,如下所示:
int age;
... ... ...
age = 24;
但是,变量也可以在声明期间初始化为某个值。例如,
int age = 24;
在这里,声明了一个int
类型的变量年龄 ,并同时将其初始化为24
。
由于它是一个变量,因此我们也可以更改变量的值。例如,
int age = 24;
age = 35;
在这里, 年龄值从24更改为35。
必须先声明C#中的变量,然后才能使用它们。这意味着,必须先知道变量的名称和类型,然后才能为其分配值。这就是为什么C#被称为静态类型的语言的原因。
声明后,变量的数据类型不能在范围内更改。范围可以看作是代码块,其中变量可见或可以使用。如果您不理解前面的说明,请不要担心,我们将在后面的章节中学习作用域。
现在请记住,我们无法在C#中执行以下操作:
int age;
age = 24;
... ... ...
float age;
隐式类型变量
另外,在C#中,我们可以使用var
关键字声明变量而无需知道其类型。这种变量称为隐式类型的局部变量 。
使用var
关键字声明的变量必须在声明时进行初始化。
var value = 5;
编译器根据分配给变量的值来确定变量的类型。在上面的示例中, value是int
类型。这等效于:
int value;
value = 5;
您可以了解有关隐式类型局部变量的更多信息。
C#中的变量命名规则
命名变量时,我们需要遵循某些规则。在C#中命名变量的规则是:
- 变量名称只能包含字母(大写和小写),下划线(_)和数字。
- 变量名称必须以字母,下划线或@符号开头。例如,
Rules for naming variables in C# Variable Names Remarks name Valid subject101 Valid _age Valid (Best practice for naming private member variables) @break Valid (Used if name is a reserved keyword) 101subject Invalid (Starts with digit) your_name Valid your name Invalid (Contains whitespace) - C#区分大小写。这意味着年龄和年龄指的是两个不同的变量。
- 变量名称不能是C#关键字。例如,
if
,for
,using
不能是变量名。在下一个教程中,我们将讨论有关C#关键字的更多信息。
命名变量的最佳做法
- 选择一个有意义的变量名。例如, 名称 , 年龄 , 主题比n , a和s更有意义。
- 使用camelCase表示法(以小写字母开头)来命名局部变量。例如, numberOfStudents , age等。
- 使用PascalCase或CamelCase (以大写字母开头)来命名公共成员变量。例如, FirstName , Price等。
- 使用前导下划线(_)后跟camelCase表示法来命名私有成员变量。例如_bankBalance , _emailAddress等。
您可以在此处了解有关C#中的命名约定的更多信息。
不用担心公共和私有成员变量。我们将在后面的章节中了解它们。
C#基本数据类型
C#中的变量大致分为两种类型: 值类型和引用类型 。在本教程中,我们将讨论原始(简单)数据类型,它是Value类型的子类。
参考类型将在以后的教程中介绍。但是,如果您想了解有关变量类型的更多信息,请访问C#类型和变量(官方C#文档)。
布尔值(布尔)
- 布尔数据类型具有两个可能的值:
true
或false
- 默认值 :
false
- 布尔变量通常用于检查条件,例如if语句 , 循环等。
例如:
using System;
namespace DataType
{
class BooleanExample
{
public static void Main(string[] args)
{
bool isValid = true;
Console.WriteLine(isValid);
}
}
}
当我们运行程序时,输出将是:
True
签名积分
这些数据类型保存整数值(正数和负数)。在所有可用位中,一位用于符号。
1.字节
- 大小 :8位
- 范围 -128至127。
- 默认值 :0
例如:
using System;
namespace DataType
{
class SByteExample
{
public static void Main(string[] args)
{
sbyte level = 23;
Console.WriteLine(level);
}
}
}
当我们运行程序时,输出将是:
23
尝试分配超出范围的值,即小于-128或大于127,然后看看会发生什么。
2.简短
- 大小 :16位
- 范围 :-32,768至32,767
- 默认值 :0
例如:
using System;
namespace DataType
{
class ShortExample
{
public static void Main(string[] args)
{
short value = -1109;
Console.WriteLine(value);
}
}
}
当我们运行程序时,输出将是:
-1109
3. int
- 大小 :32位
- 范围 :-231至231-1
- 默认值 :0
例如:
using System;
namespace DataType
{
class IntExample
{
public static void Main(string[] args)
{
int score = 51092;
Console.WriteLine(score);
}
}
}
当我们运行程序时,输出将是:
51092
4.长
- 大小 :64位
- 范围 :-263至263-1
- 默认值 :
0L
[L表示值是长型]
例如:
using System;
namespace DataType
{
class LongExample
{
public static void Main(string[] args)
{
long range = -7091821871L;
Console.WriteLine(range);
}
}
}
当我们运行程序时,输出将是:
-7091821871
无符号积分
这些数据类型仅保留等于或大于0的值。当我们确定不会有负值时,通常使用这些数据类型来存储值。
1.字节
- 大小 :8位
- 范围 :0至255。
- 默认值 :0
例如:
using System;
namespace DataType
{
class ByteExample
{
public static void Main(string[] args)
{
byte age = 62;
Console.WriteLine(level);
}
}
}
当我们运行程序时,输出将是:
62
2. ushort
- 大小 :16位
- 范围 :0至65,535
- 默认值 :0
例如:
using System;
namespace DataType
{
class UShortExample
{
public static void Main(string[] args)
{
ushort value = 42019;
Console.WriteLine(value);
}
}
}
当我们运行程序时,输出将是:
42019
3. uint
- 大小 :32位
- 范围 :0至232-1
- 默认值 :0
例如:
using System;
namespace DataType
{
class UIntExample
{
public static void Main(string[] args)
{
uint totalScore = 1151092;
Console.WriteLine(totalScore);
}
}
}
当我们运行程序时,输出将是:
1151092
4.乌龙
- 大小 :64位
- 范围 :0至264-1
- 默认值 :0
例如:
using System;
namespace DataType
{
class ULongExample
{
public static void Main(string[] args)
{
ulong range = 17091821871L;
Console.WriteLine(range);
}
}
}
当我们运行程序时,输出将是:
17091821871
浮点
这些数据类型保存浮点值,即包含十进制值的数字。例如12.36,-92.17等。
1.浮动
- 单精度浮点型
- 大小 :32位
- 范围 :1.5×10−45至3.4×1038
- 默认值 :0.0F [F表示值是浮点型]
例如:
using System;
namespace DataType
{
class FloatExample
{
public static void Main(string[] args)
{
float number = 43.27F;
Console.WriteLine(number);
}
}
}
当我们运行程序时,输出将是:
43.27
2.双
- 双精度浮点类型。单精度和双精度浮点有什么区别?
- 大小 :64位
- 范围 :5.0×10−324至1.7×10308
- 默认值 :0.0D [D表示值是双精度型]
例如:
using System;
namespace DataType
{
class DoubleExample
{
public static void Main(string[] args)
{
double value = -11092.53D;
Console.WriteLine(value);
}
}
}
当我们运行程序时,输出将是:
-11092.53
字符 (字符)
- 它代表一个16位unicode 字符。
- 大小 :16位
- 默认值 :’\ 0′
- 范围 :U + 0000(‘\ u0000’)至U + FFFF(‘\ uffff’)
例如:
using System;
namespace DataType
{
class CharExample
{
public static void Main(string[] args)
{
char ch1 ='\u0042';
char ch2 = 'x';
Console.WriteLine(ch1);
Console.WriteLine(ch2);
}
}
}
当我们运行程序时,输出将是:
B
x
unicode的值'B'
是'\u0042'
,因此打印ch1将打印'B'
。
小数
- 与浮点类型(双精度和浮点型)相比,十进制类型具有更高的精度和更小的范围。因此,它适合进行货币计算。
- 大小 :128位
- 默认值 :0.0M [M表示十进制类型的值]
- 范围 :(-7.9 x 1028至7.9 x 1028)/(100至28)
例如:
using System;
namespace DataType
{
class DecimalExample
{
public static void Main(string[] args)
{
decimal bankBalance = 53005.25M;
Console.WriteLine(bankBalance);
}
}
}
当我们运行程序时,输出将是:
53005.25
必须在末尾添加后缀M
或m
,否则该值将被视为双精度值,并会产生错误。
C# 字面量
让我们看下面的语句:
int number = 41;
这里,
-
int
是一种数据类型 - 数字是一个变量,
-
41
是字面量
字面量是程序中显示的固定值。他们不需要任何计算。例如, 5
, false
, 'w'
是直接在程序中显示的字面量 ,无需进行任何计算。
布尔字面量
- true和false是可用的布尔字面量。
- 它们用于初始化布尔变量。
例如:
bool isValid = true;
bool isPresent = false;
整数字面量
- 整数字面量用于初始化整数数据类型的变量,即
sbyte
,short
,int
,long
,byte
,ushort
,uint
和ulong
。 - 如果整数字面量以
L
或l
结尾,则其类型为long。为了获得最佳实践,请使用L
(不是l
)。long value1 = 4200910L; long value2 = -10928190L;
- 如果整数字面量以
0x
,则表示十六进制值。没有前缀的数字将被视为十进制值。在C#中不允许使用八进制和二进制表示形式。int decimalValue = 25; int hexValue = 0x11c;// decimal value 284
浮点字面量
- 浮点字面量用于初始化float和double数据类型的变量。
- 如果浮点字面量的后缀为
f
或F
,则其类型为float。同样,如果它以d
或D
结尾,则其类型为double。如果两个后缀都不存在,则默认情况下其类型为double。 - 这些字面量以科学计数法表示时包含e或E。
double number = 24.67;// double by default float value = -12.29F; double scientificNotation = 6.21e2;// equivalent to 6.21 x 102 i.e. 621
字符和字符串字面量
- 字符 字面量用于初始化char数据类型的变量。
- 字符 字面量用单引号引起来。例如,
'x'
,'p'
等。 - 它们可以表示为字符,十六进制转义序列,unicode表示或强制转换为char的整数值。
char ch1 = 'R';// character char ch2 = '\x0072';// hexadecimal char ch3 = '\u0059';// unicode char ch4 = (char)107;// casted from integer
- 字符串字面量是字符 字面量的集合。
- 它们用双引号引起来。例如, “ Hello” , “ Easy Programming”等。
string firstName = "Richard"; string lastName = " Feynman";
- C#还支持转义序列字符,例如:
Character Meaning \'
Single quote \"
Double quote \\
Backslash \n
Newline \r
Carriage return \t
Horizontal Tab \a
Alert \b
Backspace