C# 变量和(原始)数据类型
C# 变量和(原始)数据类型
在本教程中,我们将了解变量、如何在 C# 中创建变量以及 C# 编程语言支持的不同数据类型。
变量是赋予内存位置的符号名称。变量用于在计算机程序中存储数据。
如何在C#中声明变量?
这是一个在 C# 中声明变量的示例。
int age;
在此示例中,变量 age int
类型 (integer) 被声明,它只能存储整数值。
我们可以稍后在程序中为变量赋值,如下所示:
int age; ... ... ... age = 24;
但是,变量也可以在声明期间初始化为某个值。例如,
int age = 24;
这里,一个变量 age int
类型 被声明并初始化为 24
同时。
由于它是一个变量,我们也可以更改变量的值。例如,
int age = 24; age = 35;
这里,age 的值 由 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#中变量的命名规则是:
- 变量名只能包含字母(大写和小写)、下划线 (_) 和数字。
- 变量名必须以字母、下划线或@符号开头。例如
C#中变量命名规则 变量名 备注 名称 有效 subject101 有效 _age 有效(命名私有成员变量的最佳实践) @break 有效(如果名称是保留关键字,则使用) 101 主题 无效(以数字开头) 你的名字 有效 你的名字 无效(包含空格) - C# 区分大小写。这意味着 年龄 和 年龄 指的是 2 个不同的变量。
- 变量名不能是 C# 关键字。例如,
if
,for
,using
不能是变量名。我们将在下一个教程中讨论更多关于 C# 关键字的内容。
命名变量的最佳实践
- 选择一个有意义的变量名。例如,名称 , 年龄 , 主题 比 n 更有意义 , 一个 和 s .
- 使用 camelCase 用于命名局部变量的表示法(以小写字母开头)。例如,numberOfStudents , 年龄 等。
- 使用 PascalCase 或 驼峰式 (以大写字母开头)用于命名公共成员变量。例如,名字 , 价格 等。
- 使用前导下划线 (_) 后跟 camelCase 命名私有成员变量的符号。例如,_bankBalance , _emailAddress 等。
您可以在此处了解有关 C# 命名约定的更多信息。
不要担心公共和私有成员变量。我们将在后面的章节中了解它们。
C# 原始数据类型
C# 中的变量大致分为两种类型:值类型 和引用类型 .在本教程中,我们将讨论原始(简单)数据类型,它是值类型的子类。
参考类型将在后面的教程中介绍。但是,如果您想了解更多关于变量类型的信息,请访问 C# 类型和变量(官方 C# 文档)。
布尔(bool)
- 布尔数据类型有两个可能的值:
true
或false
- 默认值 :
false
- 布尔变量一般用于检查条件,如if语句 , 循环 等。
例如:
using System;
namespace DataType
{
class BooleanExample
{
public static void Main(string[] args)
{
bool isValid = true;
Console.WriteLine(isValid);
}
}
}
当我们运行程序时,输出将是:
True
有符号积分
这些数据类型包含整数值(正数和负数)。在所有可用位中,一位用于符号。
1。 sbyte
- 尺寸 :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。诠释
- 尺寸 :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。超短
- 尺寸 :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。单位
- 尺寸 :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结尾的值是double类型]
例如:
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
'B'
的unicode值 是 '\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
一定要在最后加上,否则会被当作double处理,会报错。
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
浮点文字
- 浮点字面量用于初始化浮点和双精度数据类型的变量。
- 如果浮点文字以后缀
f
结尾 或F
,它是浮点类型。同样,如果它以d
结尾 或D
,它是双精度型。如果两个后缀都不存在,则 默认为 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
- 字符串字面量是字符字面量的集合。
- 它们用双引号括起来。例如,
“你好”
,
“简易编程”
等
string firstName = "Richard"; string lastName = " Feynman";
- C# 还支持转义序列字符,例如:
字符 含义 \'
单引号 \"
双引号 \\
反斜杠 \n
换行 \r
回车 \t
水平标签 \a
提醒 \b
退格
C语言