C# 5.0 语言规范:局部变量声明与标准
需积分: 45 154 浏览量
更新于2024-08-07
收藏 4.67MB PDF 举报
"C#语言规范第五版中的声明语句与局部变量"
在C#编程语言中,声明语句是用于定义变量或常量的关键部分,它们在代码块中使用,但不能作为嵌入语句。根据提供的信息,我们专注于8.5章节,特别是关于局部变量的声明。
8.5.1局部变量声明
局部变量是在方法、构造函数或其他块级作用域内定义的变量。声明局部变量的语法如下:
`local-variable-declaration: local-variable-type local-variable-declarators ;`
`local-variable-type` 可以是明确的类型(如 `int`, `string` 等)或关键字 `var`,后者允许从初始值设定项推断类型。`local-variable-declarators` 是变量声明列表,每个声明包括一个 `identifier`(变量名),可选地跟一个等号(`=`)和 `local-variable-initializer`(变量的初始值,可以是表达式或数组初始化器)。
例如,声明一个整型变量 `i` 并赋值为10:
```csharp
int i = 10;
```
或者,使用 `var` 关键字进行隐式类型声明:
```csharp
var count = 10;
```
在后一种情况下,`count` 的类型会自动推断为 `int`,因为初始值是整数。
**隐式类型化局部变量声明(Implicitly Typed Local Variable Declarations)**有特定的规则:
1. 一个 `local-variable-declaration` 只能有一个 `local-variable-declarator`。
2. `local-variable-declarator` 必须包含 `local-variable-initializer`。
3. `local-variable-initializer` 必须是一个编译时可确定类型的表达式。
4. 表达式不能引用声明的变量自身。
因此,以下都是不合法的隐式类型化局部变量声明:
```csharp
var x; // 错误,没有初始值设定项推断类型
var y = {1, 2, 3}; // 错误,数组初始化器不允许
var z = null; // 错误,null 没有类型
var u = x => x + 1; // 错误,匿名函数没有类型
var v = v++; // 错误,初始化器不能引用自身
```
C#语言规范还涵盖了许多其他主题,包括程序结构、类型和变量、表达式、语句、类和对象、成员的可访问性、类型形参、继承、字段、方法、属性、索引器、事件、运算符、析构函数、结构、数组、接口、枚举、委托以及特性等。这个规范是C#开发人员的重要参考资料,提供了对语言特性和使用方式的详尽解释。
326 浏览量
2020-01-17 上传
2022-07-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
美自
- 粉丝: 16
- 资源: 3943
最新资源
- Credit_Risk_Analysis:使用机器学习算法进行分析以使用LendingClub的数据集识别信用卡风险
- Audio:project project这个项目是使用https制作的
- 智能果蔬水培系统
- stock-analysis
- MySalesCarProject
- sheql:调度查询语言
- 【地产资料】XX地产店长管理核心大纲.zip
- P2P-draw:点对点绘图应用程序
- CEUB-PPW:计划网络的动产仓库
- Shopping-Application-Java-:具有文本文件数据库的购物应用程序
- CS441_Proj6:自己设计的游戏
- Excel模板外币贷款明细表.zip
- npm-why:标识为什么安装了软件包。 等同于npm软件包的“ yarn why”
- R-code
- PTT-18Plus:主流浏览器附加元件,用来略过PTT 的「电脑网路内容分级处理办法」确认画面
- 一个基于hadoop的大数据实战.zip