百度推广网站必须备案吗,asp.net 开发网站开发,红豆影视传媒有限公司,网站功能说明怎么做一、变量基础
1. 声明与初始化
声明语法#xff1a;数据类型 变量名#xff08;如 int age; string name#xff09;初始化要求#xff1a; 1、 类或结构体中的字段变量#xff08;全局变量#xff09;无需显式初始化#xff0c;默认值…一、变量基础
1. 声明与初始化
声明语法数据类型 变量名如 int age; string name初始化要求 1、 类或结构体中的字段变量全局变量无需显式初始化默认值为 0 或 null 2、方法内的局部变量必须显式初始化后才能使用否则编译报错
int globalVar; // 合法全局变量默认0
void MyMethod() { int localVar 10; // 必须初始化
} 2. 类型推断
var 关键字编译器根据赋值自动推断变量类型仅限局部变量
var name Alice; // 推断为 string
var num 3.14; // 推断为 double 二、变量作用域规则
1. 作用域类型
作用域类型定义范围示例场景块级作用域{} 包围的代码块C# 7if / for / 自定义代码块内部方法参数作用域整个方法内可见方法参数传递全局变量作用域类或结构体级别类字段、静态变量循环变量作用域循环体内部for (int i0; …) 中的 i
2. 核心规则
局部变量仅在其声明的代码块内有效
{ int blockVar 20; Console.WriteLine(blockVar); // 合法
}
// Console.WriteLine(blockVar); // 报错超出作用域 全局变量类或结构体内所有方法可访问
class MyClass { int globalVar 30; void MethodA() globalVar 40; void MethodB() Console.WriteLine(globalVar);
} 静态变量类级别作用域通过类名访问
class MyClass { static int staticVar 100;
}
// 访问方式MyClass.staticVar 三、关键注意事项
1. 作用域冲突
局部变量与全局变量同名时优先访问局部变量
int age 30;
void MyMethod() { int age 25; Console.WriteLine(age); // 输出25
} 2. 内存管理
栈内存存放局部变量和参数随代码块结束自动释放堆内存存放对象和引用类型数据由垃圾回收器GC管理
3. 跨作用域访问限制 外层代码块无法访问内层代码块的变量
void OuterMethod() { if (true) { int innerVar 10; } // Console.WriteLine(innerVar); // 报错
} 四、最佳实践建议
最小作用域原则变量应在其最小必要范围内声明减少命名冲突风险避免全局滥用全局变量易引发耦合问题优先使用局部变量显式初始化即使允许默认值也建议为全局变量显式赋初值类型推断慎用var 适用于类型名冗长或赋值表达式明确的场景如 var list new List()
总结
变量生命周期
全局变量 → 类生命周期
静态变量 → 程序生命周期
局部变量 → 代码块/方法执行周期