精通C#变量与基础数据类型:完整指南
C#变量与(基础)数据类型
本教程学习变量、如何在C#中创建变量,以及C#编程语言支持的不同数据类型。
变量是赋予内存位置的符号名称。变量用于在计算机程序中存储数据。
如何在C#中声明变量?
这是在C#中声明变量的示例。
int age;
此例声明一个类型为int(整数)的变量age,只能存储整数值。
稍后在程序中可赋值:
int age; ... ... ... age = 24;
也可在声明时初始化:
int age = 24;
此处声明int类型变量age并同时初始化为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#变量命名规则 变量名 说明 name 合法 subject101 合法 _age 合法(私有成员变量命名最佳实践) @break 合法(名为保留关键字时使用) 101subject 非法(数字开头) your_name 合法 your name 非法(含空格) - C#区分大小写。age与Age是两个不同变量。
- 变量名不能是C#关键字。如
if、for、using不可作变量名。下节将详述关键字。
变量命名最佳实践
- 选择有意义名称。如name、age、subject优于n、a、s。
- 局部变量用camelCase(小写开头)。如numberOfStudents、age。
- 公共成员变量用PascalCase或CamelCase(大写开头)。如FirstName、Price。
- 私有成员变量用下划线前缀+camelCase。如_bankBalance、_emailAddress。
可查阅C#命名约定深入了解。公共/私有成员变量后续章节讲解。
C#基础数据类型
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. 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. short
- 大小: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位
- 范围:-2^31至2^31-1
- 默认值:0
示例:
using System;
namespace DataType
{
class IntExample
{
public static void Main(string[] args)
{
int score = 51092;
Console.WriteLine(score);
}
}
}
输出:
51092
4. long
- 大小:64位
- 范围:-2^63至2^63-1
- 默认值:
0L[L结尾标识long类型]
示例:
using System;
namespace DataType
{
class LongExample
{
public static void Main(string[] args)
{
long range = -7091821871L;
Console.WriteLine(range);
}
}
}
输出:
-7091821871
无符号整型
仅存储≥0值。确定无负值时使用。
1. byte
- 大小:8位
- 范围:0至255
- 默认值:0
示例:
using System;
namespace DataType
{
class ByteExample
{
public static void Main(string[] args)
{
byte age = 62;
Console.WriteLine(age);
}
}
}
输出:
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至2^32-1
- 默认值:0
示例:
using System;
namespace DataType
{
class UIntExample
{
public static void Main(string[] args)
{
uint totalScore = 1151092;
Console.WriteLine(totalScore);
}
}
}
输出:
1151092
4. ulong
- 大小:64位
- 范围:0至2^64-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. float
- 单精度浮点类型
- 大小:32位
- 范围:1.5×10⁻⁴⁵至3.4×10³⁸
- 默认值:0.0F [F结尾标识float类型]
示例:
using System;
namespace DataType
{
class FloatExample
{
public static void Main(string[] args)
{
float number = 43.27F;
Console.WriteLine(number);
}
}
}
输出:
43.27
2. double
- 双精度浮点类型。单双精度区别何在?
- 大小:64位
- 范围:5.0×10⁻³²⁴至1.7×10³⁰⁸
- 默认值: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'。
十进制型
- 比浮点类型(double、float)精度更高、范围更小,适合货币计算。
- 大小:128位
- 默认值:0.0M [M结尾标识decimal类型]
- 范围:(-7.9×10²⁸至7.9×10²⁸)/(10⁰至10²⁸)
示例:
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是数据类型- number是变量
41是字面量
字面量是程序中直接出现的固定值,无需计算。如5、false、'w'直接出现无计算。
布尔字面量
true与false为可用布尔字面量。- 用于初始化布尔变量。
示例:
bool isValid = true; bool isPresent = false;
整数字面量
- 用于初始化整数类型变量:
sbyte、short、int、long、byte、ushort、uint、ulong。 - 整数字面量以
L或l结尾为long类型。最佳实践用大写L。long value1 = 4200910L; long value2 = -10928190L;
- 以
0x开头为十六进制。无前缀视为十进制。C#不支持八进制与二进制表示。int decimalValue = 25; int hexValue = 0x11c;// 十进制284
浮点字面量
- 用于初始化
float与double变量。 - 以
f/F结尾为float;以d/D结尾为double;无后缀默认double。 - 科学计数法含
e/E。double number = 24.67;// 默认double float value = -12.29F; double scientificNotation = 6.21e2;// 等价6.21×10²即621
字符与字符串字面量
- 字符字面量初始化
char变量。 - 单引号括起。如
'x'、'p'。 - 可作字符、十六进制转义、Unicode、整数强转字符表示。
char ch1 = 'R';// 字符 char ch2 = '\x0072';// 十六进制 char ch3 = '\u0059';// Unicode char ch4 = (char)107;// 整数强转
- 字符串字面量是字符字面量集合。
- 双引号括起。如"Hello"、"Easy Programming"。
string firstName = "Richard"; string lastName = " Feynman";
- C#支持转义字符:
字符 含义 \'单引号 \"双引号 \\反斜杠 \n换行 \r回车 \t水平制表 \a警报 \b退格
C语言
- 掌握 C++ 变量、字面量与常量:核心概念与实战指南
- 深入理解 C++ 数据类型:基础类型、修饰符与最佳实践
- C 语言变量、常量与字面量完全指南
- C 语言数据类型详解:int、float、char 等核心类型完全指南
- C 语言存储类完全解析:auto、extern、static、register
- C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
- C 语言数据类型完全指南:整型、浮点型、void 与派生类型
- C 语言变量详解:类型、命名规则、定义声明与内存管理
- 精通Python数据类型:实战指南
- Java 变量与字面量:全面指南
- Java 基本数据类型:8 大类型完整指南与示例
- 理解 Java 变量类型:综合指南