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

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

基础概念

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

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

数据类型

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

  • 基本数据类型 :包括整数(int)、浮点数(floatdouble)、字符(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; // 静态变量
}
相关推荐
F20226974861 分钟前
西门子 PLC 与 C# 通信
开发语言·c#
gugucoding19 分钟前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
β添砖java23 分钟前
2025最新快速构建企业级虚拟专用网络环境学习笔记
笔记·学习
万联WANFLOW1 小时前
多分支企业组网,IP 网段到底该怎么规划
开发语言·php
阿里嘎多学长1 小时前
2026-07-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管
cookies_s_s3 小时前
C++ 字符串动态创建对象 -- 工厂模式、自动注册、模板递归动态调用
服务器·开发语言·c++
盐焗鹌鹑蛋4 小时前
【C++】继承
开发语言·c++
栈溢出了5 小时前
Java Lambda 表达式笔记
java·开发语言·intellij-idea
WZF-Sang5 小时前
网络基础——2
服务器·网络·c++·学习·网络编程·php
zhixingheyi_tian5 小时前
一份GC日志的解读
java·开发语言