【C#学习笔记】变量、变量类型

在C#中,变量是存储数据的容器,每个变量都有其特定的数据类型,这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释,并附带代码示例和解释:

基础概念

定义: 变量是存储数据的容器,具有一个数据类型和名称。

用途: 用于存储和操作数据。

数据类型

C#支持多种数据类型,包括基本数据类型和引用数据类型。

  • 基本数据类型 :包括整数(int)、浮点数(float、double)、字符(char)、布尔值(bool)和字符串(string)。
  • 引用数据类型 :包括类(class)、接口(interface)、数组(array)和委托(delegate)。

变量声明

在C#中,你可以使用以下方式声明变量:

cs 复制代码
int number; // 声明一个整数变量
float decimalNumber; // 声明一个浮点数变量
string name; // 声明一个字符串变量

变量初始化

你可以使用以下方式初始化变量:

cs 复制代码
int number = 10; // 初始化一个整数变量
float decimalNumber = 3.14f; // 初始化一个浮点数变量
string name = "张三"; // 初始化一个字符串变量

变量赋值

你可以使用等号(=)来给变量赋值:

cs 复制代码
int number = 10; // 给整数变量赋值
number = 20; // 重新赋值

局部变量和参数变量

在C#中,局部变量和参数变量都是在栈内存中分配的。当方法调用开始时,局部变量和参数变量被分配内存,方法调用结束时,这些变量被释放。

cs 复制代码
void IncrementNumber(int number)
{
    number++; // 增加局部变量的值
}

int main()
{
    int myNumber = 10;
    IncrementNumber(myNumber); // 传递参数变量
    Console.WriteLine(myNumber); // 输出仍然是10,因为局部变量和参数变量是独立的
}

实例变量和静态变量

实例变量和静态变量都是在堆内存中分配的。每个类的实例都有自己的实例变量副本,而静态变量则属于类本身,所有类的实例共享同一组静态变量。

cs 复制代码
class MyClass
{
    int instanceVariable = 10; // 实例变量
    static int staticVariable = 20; // 静态变量
}

MyClass myObject = new MyClass();
myObject.instanceVariable = 30; // 给实例变量赋值
MyClass.staticVariable = 40; // 直接通过类名访问静态变量

变量作用域

变量作用域决定了变量可见性和生命周期。在C#中,变量可以分为局部变量、参数变量、实例变量和静态变量。

cs 复制代码
void PrintNumber(int number)
{
    Console.WriteLine(number); // 参数变量
}

class MyClass
{
    int instanceVariable = 10; // 实例变量
    static int staticVariable = 20; // 静态变量
}

int main()
{
    int localVariable = 30; // 局部变量
    PrintNumber(localVariable); // 参数变量
    MyClass myObject = new MyClass();
    myObject.instanceVariable = 40; // 实例变量
    MyClass.staticVariable = 50; // 静态变量
}
相关推荐
草莓熊Lotso9 分钟前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
晓梦林1 小时前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
huaqianzkh1 小时前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
Godspeed Zhao11 小时前
从零开始学AI25——无监督学习之层次聚类
学习·机器学习·聚类
沐晓时光12 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
David猪大卫17 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger18 小时前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
用户37215742613518 小时前
C# 实现 Excel 单元格保护:锁定公式并允许编辑指定区域
c#·ai编程·编程语言
fengci.19 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_67820 小时前
JavaEE通关手册:初识Java
java·开发语言