作者:empty 页数:1866 出版社:empty |
概述在命命行上使用csc.exe生成如何为VisualStudio命命行设置环境变量按类别列出的C#编译器选项按字母顺序列出的C#编译器选项
Contents
C#文档
入门
C#语言和.NET简介
C#教程
简介
类型
程序构建基块
主要语言区域
教程
概述
C#编程简介
选择你的第一课
Helloworld
C#中的数字
分支和循环
列表集合
在本地环境中工作
设置你的环境
C#中的数字
分支和循环
列表集合
类简介
面向对象的编程
探索顶级语句
探索对象中的模式
探索C#6
探索字符串内插-交互式
探索字符串内插-在环境中
字符串内插的高级方案
使用默认接方法安全地更新接
用默认接方法创建mix in功能
探索索引和范围
使用可为空引用类型
将应用升级为可为空引用类型
生成和使用异步流
使用模式匹配生成数据驱动的算法
控制台应用程序
REST客户端
C#和.NET中的继承
使用LINQ
使用特性
C#中的新增功能
C#9.0
C#8.0
C#7.0-7.3
C#6
编译器中的重大更改
C#版本历史记录
语言与框架的关系
版本和更新注意事项
C#概念
C#类型系统
可为空引用类型
选择用于后用可为空引用类型的策略
命名空间
基本类型
类
析构元组和其他类型
接
方法
属性
索引器
弃元
泛型
迭代器
委托和事件
委托简介
System.Delegate和delegate关键字
强类型委托
委托的常见模式
事件简介
标准, NET事件模式
已更新的.NET事件模式
区别委托和事件
语言集成查询(LINQ)
LINQ概述
查询表达式基础
C#中的LINQ
在C#中编写LINQ查询
查询对象的集合
从方法中返回查询
在内存中存储查询结果
对查询结果进行分组
创建嵌套组
对分组操作执行子查询
按连续键对结果进行分组
在运行时动态指定谓词筛选器
执行内部联接
执行分组联接
执行左外部联接
对join子句的结果进行排序
使用组合键进行联接
执行自定义联接操作
在查询表达式中处理null值
在查询表达式中处理异常
异步编程
模式匹配
编写安全高效的代码
表达式树
表达式树简介
表达式树说明
支持表达式树的框架类型
执行表达式
解释表达式
生成表达式
翻译表达式
总结
本机互操作性
记录代码
版本控制
操作指南C#文章
文章索引
将字符串拆分为子字符串
连接字符串
搜索字符串
修改字符串内容
比较字符串
使用模式匹配以及is/as运算符安全地进行强制转换
.NET Compiler Platform SDK(Roslyn API)
.NET Compiler Platform SDK(Roslyn API) 概述
了解编译器API模型
使用语法
使用语义
使用工作区
使用语法可视化工具浏览代码
快速入门
语法分析
语义分析
语法转换
教程
概述
异步编程模型
异步返回类型
取消任务
生成首个分析器和代码修补程序
C#编程指南
概述
C#程序内部探究
C#程序所含内容
HelloWorld--您的第一个程序
C#程序的通用结构
标识符名称
C#编码约定
Main 0和命令行参数
概述
命今行自变量
如何显示命令行参数
Main(返回值
编程概念
概述
异步编程
取消任务列表
在一段时间后取消任务
在异步任务完成时对其进行处理
异步文件访问
属性
概述
创建自定义特性
使用反射访问特性
如何使用特性创建C/C++联合
集合
协变和逆变
概述
泛型接中的变体
创建变体泛型接
在泛型集合的接中使用变体
委托中的变体
在委托中使用变体
对Func和Action泛型委托使用变体
表达式树
概述
如何执行表达式树
如何修改表达式树
如何使用表达式树来生成动态查询
在VisualStudio中调试表达式树
Debug View语法
迭代器
语言集成查询(LINQ)
概述
C#中的LINQ入门
LINQ查询简介
LINQ和泛型类型
基本LINQ查询操作
使用LINQ进行数据转换
LINQ查询操作中的类型关系
LINQ中的查询语法和方法语法
支持LINQ的C#功能
演练:用C#编写查询(LINQ)
标准查询运算符概述
概述
标准查询运算符的查询表达式语法
标准查询运算符按执行方式的分类
对数据进行排序
Set运算
筛选数据
限定符运算
投影运算
数据分区
联接运算
数据分组
生成运算
相等运算
元素运算
转换数据类型
串联运算
聚合运算
LINQ to Objects
概述
LINQ和字符串
操作指南
如何对某个词在字符串中出现的次数进行计数(LINQ)
如何查询包含一组指定词语的句子(LINQ)
如何查询字符串中的字符(LINQ)
如何将LINQ查询与正则表达式合并在一起
如何查找两个列表之间的差集(LINQ)
如何按任意词或字段对文本数据进行排序或筛选(LINQ)
如何重新排列带分隔符的文件的字段(LINQ)
如何合并和比较字符串集合(LINQ)
如何从多个源填充对象集合(LINQ)
如何使用组将一个文件拆分成多个文件(LINQ)
如何联接不同文件的内容(LINQ)
如何在CSV文本文件中计算列值(LINQ)
LINQ和反射
如何使用反射查询程序集的元数据(LINQ)
LINQ和文件目录
概述
如何查询具有指定特性或名称的文件
如何按扩展名对文件分组(LINQ)
如何查询一组文件夹中的总字节数(LINQ)
如何比较两个文件夹的内容(LINQ)
如何查询目录树中的一个或多个最大的文件(LINQ)
如何在目录树中查询重复文件(LINQ)
如何:查询文件夹中的文件的内容(LINQ)
如何使用LINQ查询ArrayList
如何为LINQ查询添加自定义方法
LINQ to A DO.NET(门户网站页)
后用数据源以进行LINQ查询
对LINQ的VisualStudio IDE和工具支持
反射
序列化(C#)
概述
如何将对象数据写人XML文件
如何从XML文件中读取对象数据
演练:在VisualBasic中保持对象
语句、表达式和运算符
概述
语句
Expression-Bodied成员
匿名函数
概述
如何在查询中使用Lambda表达式
相等和相等性比较
相等比较
如何为类型定义值相等性
如何测试引用相等性(标识)
类型
使用和定义类型
强制转换和类型转换
装箱和取消装箱
如何将字节数组转换为int
如何将字符串转换为数字
如何在十六进制字符串与数值类型之间转换
使用类型dynamic
演练:创建并使用动态对象(C#和VisualBasic)
类和结构
概述
类
对象
继承
多形性
概述
使用Override和New关键字进行版本控制
了解何时使用Override和New关键字
如何重写ToString方法
成员
成员概述
抽象类、密封类及类成员
静态类和静态类成员
访问修饰符
字段
常量
如何定义抽象属性
如何在C#中定义常量
属性
属性概述
使用属性
接属性
限制访问器可访问性
如何声明和使用读/写属性
自动实现的属性
如何:使用自动实现的属性实现轻量类
方法
方法概述
本地函数
ref返回值和局部变量
参数
快速参考
传递值类型参数
传递引用类型参数
如何了解向方法传递结构和向方法传递类引用之间的区别
隐式类型的局部变量
如何在查询表达式中使用隐式类型的局部变量和数组
扩展方法
如何实现和调用自定义扩展方法
如何为枚举创建新方法
命名自变量和可选自变量
如何在Office编程中使用命名自变量和可选自变量
构造函数
构造函数概述
使用构造函数
实例构造函数
私有构造函数
静态构造函数
如何编写复制构造函数
终结器
对象和集合初始值设定项
如何使用对象初始值设定项初始化对象
如何使用集合初始值设定项初始化字典
嵌套类型
分部类和方法
匿名类型
如何在查询中返回元素属性的子集
接
概述
显式接实现
如何显式实现接成员
如何显式实现两个接的成员
委托
概述
使用委托
带有命名方法的委托与匿名方法
如何合并委托(多播委托)(C#编程指南)
如何声明、实例化和使用委托
数组
概述
作为对象的数组
单维数组
多维数组
交错数组
对数组使用for each
将数组作为参数传递
隐式类型的数组
字符串
使用字符串进行编程
如何确定字符串是否表示数值
索引器
概述
使用索引器
接中的索引器
属性和索引器之间的比较
事件
概述
如何订阅和取消订阅事件
如何发布符合.NET准则的事件
如何在派生类中引发基类事件
如何实现接事件
如何实现自定义事件访问器
泛型
概述
泛型类型参数
类型参数的约束
泛型类
泛型接
泛型方法
泛型和数组
泛型委托
C++模板和C#泛型之间的区别
运行时中的泛型
泛型和反射
泛型和特性
命名空间
概述
Using命名空间
如何使用My命名空间
不安全代码和指针
概述和限制
固定大小的缓冲区
指针类型
概述
指针转换
如何使用指针来复制字节数组
XML文档注释
概述
建议的文档注释标记
处理XML文件
文档标记分隔符
如何使用XML文档功能
文档标记参考
C>
code>
cref特性
example>
exception>
include>
inherit doc>
list>
para>
param>
param ref>
permission>
remarks>
returns>
see>
see also>
summary>
type param>
type param ref>
value>
异常和异常处理
概述
使用异常
异常处理
创建和引发异常
编译器生成的异常
如何使用try-catch处理异常
如何使用finaly执行清理代码
如何捕捉非CLS异常
文件系统和注册表
概述
如何循环访问目录树
整型数值类型
浮点型数值类型
内置数值转换
如何获取有关文件、文件夹和驱动器的信息
如何创建文件或文件夹
如何复制、删除和移动文件和文件夹
如何提供文件操作进度对话框
如何写入文本文件
如何读取文本文件中的内容
如何一次一行地读取文本文件
如何在注册表中创建注册表项
互操作性
.NET互操作性
互操作性概述
如何使用C#功能访问Of ice互操作对象
如何在COM互操作编程中使用索引属性
如何使用平台调用播放WAV文件
演练:Office编程(C#和VisualBasic)
COM类示例
语言参考
概述
配置语言版本
类型
值类型
概述
bool
char
枚举类型
结构类型
元组类型
快速参考
可访问性级别
可以为null的值类型
引用类型
引用类型的功能
内置引用类型
class
interface
可为空引用类型
void
var
内置类型
非托管类型
默认值
关键字
概述
修饰符
访问修饰符
可访问性域
可访问性级别的使用限制
内部
private
protected
公共
受保护的内部
私有受保护
abstract
async
const
event
extern
in(泛型修饰符)
new(成员修饰符)
out(泛型修饰符)
override
readonly
sealed
static
unsafe
virtual
volatile
语句关键字
语句类别
选择语句
if-else
开关
迭代语句
do
for
for each, in
while
跳转语句
break
continue
goto
return
异常处理语句
throw
try-catch
try-finally
try-catch-finally
Checked和Unchecked
概述
checked
unchecked
fixed语句
lock语句
方法参数
快速参考
params
in(参数修饰符)
ref
out(参数修饰符)
命名空间关键字
命名空间
using
using的上下文
using指令
using static指令
using语句
外部别名
类型测试关键字
是
泛型类型约束关键字
new约束
where
访问关键字
base
this
文字关键字
null
true和false
default
上下文关键字
快速参考
add
get
partial(类型)
partial(方法)
remove
set
when(筛选条件)
value
yield
查询关键字
快速参考
from子句
where子句
select子句
group子句
更改为
order by子句
join子句
let子句
ascending
descending
on
equals
by
in
运算符和表达式
概述
算术运算符
Boolean逻辑运算符
按位和移位运算符
相等运算符
比较运算符
成员访问运算符和表达式
类型测试运算符和强制转换表达式
用户定义的转换运算符
与指针相关的运算符
赋值运算符
Lambda表达式
++=运算符
--=运算符
?:运算符
!(null包容) 运算符
??和??=运算符
=>运算符
::运算符
await运算符
默认值表达式
delegate运算符
name of表达式
new运算符
sizeof运算符
stack alloc表达式
switch表达式
true和false运算符
运算符重载
特殊字符
概述
$--字符串内插
@--逐字字符串标识符
编译器读取的属性
全局属性
常规
调用方信息
可为空的静态分析
预处理器指命
概述
#if
#else
#elif
#endif
#define
#undef