《C# 本质论》 第1章 C#概述

本文介绍了C#编程语言的基础,包括C#的语法特点,如关键字、标识符、类型定义、Main方法、变量使用、控制台输入输出、注释和托管执行机制。同时讲解了如何创建、编译和执行C#代码,以及使用DotnetCLI和VisualStudio的实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 C#概述

注意 C#是区分大小写的语言:大小写不正确,会使代码无法成功编译。

C#从C和C++继承了基本的语法。语法标点(比如分号和大括号)、特性(比如区分大小写)和关键字(比如class、public、void) C#语言设计者从C/C++规范中删除了他们不喜欢的特性,同时创建了他们喜欢的。

1.1.1 创建、编辑、编译和运行C#源代码

写好C#代码后需要编译和运行。这时要选择使用那个.Net实现。这些实现通常打包成一个 软件开发包。(Software Development Kit,SDK),其中包括编译器、运行时执行引擎,运行时能访问的语言可访问功能框架,一些可能和SDK捆绑的其他工具(比如供自动化生成的生成引擎)。

如不确定要使用.Net框架,就默认选择.Net Core。它实现Linx、macOS和Microsoft Windows,是.NET开发团队投入的最大的实现。

使用Dotnet CLI

Dotnet命令dotnet.exe是Dotnet命令行接口,可用于生成C#程序的初始代码库并编译和运行程序。注意这里的CLI代表“命令行接口”(Command-Line Interface)。

创建目录:

md \HelloWorld

切换到目录:

cd /HelloWorld

执行dotnet new console命令来生成程序基架(或称程序项目)。这会生成几个文件,最主要的是Program.cs和项目文件:

dotnet new console

运行生成的程序。这会编译并运行由dotnet new console命令创建的默认Program.cs程序:

dot run

1.1.2 创建项目

无论Dotnet CLI还是VS都会自动创建几个文件。 .cs是所有C#文件的标准扩展名,也是编译器默认要编译成最终程序的扩展名。

虽然并非需要,但通常都会为C#项目生成一个项目文件。项目文件的内容随不同应用程序类型和.NET框架而变。但至少指出那些文件要包含到编译中,要生成什么应用程序类型,支持什么.NET框架,调试或启动应用程序需要什么设置,以及代码的其他依赖库。

1.1.3 编译和执行

dotnet build命令生成名为HelloWorld.dll的程序集。

dotnet build

扩展名.dll代表“ 动态链接库”(Dynamic Link Library)。所有程序集都是用.dll扩展名。控制台程序也不例外。

开发人员可以不用dotnet run 能直接运行的控制台程序,而是创建可由其他较大的程序来引用的库。库也是程序集。换言之,一次成功的C#编译,结果必然是 程序集,无论该程序集是程序还是库。

使用Dotnet CLI

1,要用Dotnet CLI生成并执行代码,请打开命令提示符,将当前目录设为E

C#本质论(第3版) 详细介绍C# 4.0 第1 c#概述 1.1 hello world 1.2 c#语法基础 1.2.1 c#关键字 1.2.2 类型定义 1.2.3 main 1.2.4 语句和语句分隔符 1.2.5 空白 1.3 使用变量 1.3.1 数据类型 1.3.2 变量的声明 1.3.3 变量的赋值 1.3.4 变量的使用 1.4 控制台输入和输出 1.4.1 从控制台获取输入 1.4.2 将输出写入控制台 1.5 注释 1.6 托管执行和公共语言基础结构 1.7 c#和net版本 .1.8 cil和ildasm 1.9 小结 第2 数据类型 2.1 基本数值类型 2.1.1 整数类型 2.1.2 浮点类型 2.1.3 decimal类型 2.1.4 字面值 2.2 更多基本类型 2.2.1 布尔类型 2.2.2 字符类型 2.2.3 字符串 2.3 null和void 2.3.1 null 2.3.2 void 2.4 类型的分类 2.4.1 值类型 2.4.2 引用类型 2.5 可空修饰符 2.6 数据类型之间的转换 2.6.1 显式转型 2.6.2 隐式转型 2.6.3 不进行转型的类型转换 2.7 数组 2.7.1 数组的声明 2.7.2 数组的实例化和赋值 2.7.3 数组的使用 2.7.4 字符串作为数组使用 2.7.5 常见错误 2.8 小结 第3 运算符和控制流 3.1 运算符 3.1.1 一元运算符正和负 3.1.2 二元算术运算符 3.1.3 圆括号运算符 3.1.4 赋值运算符 3.1.5 递增和递减运算符 3.1.6 常量表达式 3.2 流控制概述 3.2.1 if语句 3.2.2 嵌套if 3.3 代码块 3.4 作用域和声明空间 3.5 布尔表达式 3.5.1 关系运算符和相等性运算符 3.5.2 逻辑布尔运算符 3.5.3 逻辑求反运算符 3.5.4 条件运算符 3.5.5 空接合运算符 3.6 按位运算符 3.6.1 移位运算符 3.6.2 按位运算符 3.6.3 按位赋值运算符 3.6.4 按位取反运算符 3.7 控制流语句 3.7.1 whi.1 e和do/while循环 3.7.2 for循环 3.7.3 foreach循环 3.7.4 switch语句 3.8 跳转语句 3.8.1 break语句 3.8.2 continue语句 3.8.3 go to语句 3.9 c#预处理器指令 3.9.1 排除和包含代码 3.9.2 定义预处理器符号 3.9.3 生成错误和警告 3.9.4 关闭警告消息 3.9.5 nowarn:选项 3.9.6 指定行号 3.9.7 可视编辑器提示 3.10 小结 第4 方法和参数 4.1 方法的调用 4.1.1 命名空间 4.1.2 类型名称 4.1.3 作用域 4.1.4 方法名称 4.1.5 参数 4.1.6 方法返回值 4.1.7 语句与方法调用的比较 4.2 方法的声明 4.2.1 参数声明 4.2.2 方法返回值声明 4.3 uslng指令 4.4 main()的返回值和参数 4.5 参数 4.5.1 值参数 4.5.2 引用参数 4.5.3 输出参数 4.5.4 参数数组 4.6 递归 4.7 方法重载 4.8 可选参数 4.9 用异常实现基本错误处理 4.9.1 捕捉错误 4.9.2 使用throw语句报告错误 4.10 小结 第5 类 5.1 类的定义和实例化 5.2 实例字段 5.2.1 实例字段的声明 5.2.2 实例字段的访问 5.3 实例方法 5.4 使用this关键字 5.5 访问修饰符 5.6 属性 5.6.1 属性的声明 5.6.2 自动实现的属性 5.6.3 命名规范 5.6.4 提供属性验证 5.6.5 读和只写属性 5.6.6 为取值方法和赋值方法指定访问修饰符 5.6.7 属性作为虚字段使用 5.6.8 属性和方法调用不允许作为ref或out参数值使用 5.7 构造器 5.7.1 构造器的声明 5.7.2 默认构造器 5.7.3 对象初始化器 5.7.4 构造器的重载 5.7.5 使用this调用另一个构造器 5.8 静态成员 5.8.1 静态字段 5.8.2 静态方法 5.8.3 静态构造器 5.8.4 静态属性 5.8.5 静态类 5.9 扩展方法 5.10 封装数据 5.10.1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值