当前位置: 首页 > news >正文

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

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

基础概念

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

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

数据类型

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

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

变量声明

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

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

变量初始化

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

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

变量赋值

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

int number = 10; // 给整数变量赋值
number = 20; // 重新赋值

局部变量和参数变量

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

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

实例变量和静态变量

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

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

变量作用域

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

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; // 静态变量
}
http://www.lryc.cn/news/405676.html

相关文章:

  • 题解:T480718 eating
  • MATLAB中matfile用法
  • Spring之Spring Bean的生命周期
  • OSINT 开源情报中的地理定位方法
  • Java面试题系列 - 第17天
  • 开发环境搭建
  • 【NLP】关于参数do_sample的解释
  • Vbox虚拟机+Ubuntu motest测试drm
  • ArcGIS Pro SDK (九)几何 15 转换
  • Spring IOC DI --- 认识IOC DI
  • 常用的python程序汇总——入门级
  • 被问到MQ消息已丢失,该如何处理?
  • open3d:ransac分割多个平面(源码)
  • Github 2024-07-17 开源项目日报 Top10
  • vue3中Composition API写法 <script setup>标签中哪些可以不用导入即可使用?
  • Facebook Dating:社交平台的约会新体验
  • 【系统架构设计 每日一问】五 搜索型业务,采用MySQL+ES,如何保证数据一致性
  • 缓存穿透,缓存击穿,缓存雪崩
  • 运维 | 清理 Linux 磁盘空间方法汇总
  • googleTest 源码主线框架性分析——TDD 01
  • Python:对常见报错导致的崩溃的处理
  • linux系统进程占cpu 100%解决步骤
  • 数据传输安全--IPSEC
  • Unity XR Interaction Toolkit的安装(二)
  • 什么是PCB流锡槽焊盘/C型焊盘,如何设计?-捷配笔记
  • 电缆故障精准定位系统
  • Google Chrome 浏览器在链接上点右键的快捷键
  • Redis在SpringBoot中遇到的问题:预热,雪崩,击穿,穿透
  • Pytorch 6
  • iterator(迭代器模式)