C#8.0本质论第一章--C#概述

C#8.0本质论第一章–C#概述

朋友推荐的一本讲C#的书–C#本质论,英文叫Essential C#,官网可以免费看英文版的https://essentialcsharp.com/home。

C#可以为各种不同的系统平台开发应用软件和程序组件,支持移动设备,游戏主机,Web应用等等。

1.1Hello World

可以用VSCode编写,用dotnet命令编译。也可以在VS中编写。

.NET Core的所有程序集都使用.dll扩展名。

1.2C#语法基础

介绍了C#关键字,以及标识符的规则,包括帕斯卡大小写(PascalCase)和camel大小写(camelCase),也就是大驼峰和小驼峰,类名函数名用大驼峰,局部变量名用小驼峰。

关键字附加@前缀可作为标识符使用。

C#要求Main方法返回void或int,要么无参,要么接收一个字符串数组,Main返回的是状态码,标识程序执行是否成功,返回非0通常意味着错误。

C#允许一条语句跨越多行。

1.3使用变量

char是字符类型,与其他语言不同的是,长度为16位,足以表示无代理项的Unicode字符。

局部变量声明后必须在读取前赋值。赋值作为一种操作会返回一个值,所以C#允许在同一语句中进行多个赋值操作。

所有string类型的数据都是不可变的。

1.4控制台输入和输出

System.Console.Read()方法返回与读取的字符值对应的整数,没有更多字符可用就返回-1,为获取实际字符,需将整数转型为字符。

C#2.0新增了ReadKey()方法,它返回的是用户的单词按键输入。

C#6.0之前使用复合格式化的方式来定义输出格式,C#6.0之后开始引入字符串插值功能。

//复合格式化
System.Console.WriteLine("your name is {0} {1}",firstname,lastname);
//字符串插值
System.Console.WriteLine($"your name is {firstname} {lastname}");

占位符能按任意顺序出现,还能多次使用,另外也可以省略占位符。

1.5托管执行和CLI

程序集使用公共中间语言(Common Intermediate Language,CIL)。C#编译器将C#源代码文件转换成中间语言,然后VES(Virtual Execution System,虚拟执行系统,也称为运行时(runtime))根据需要编译CIL代码,转换成处理器能理解的机器码,这个过程称为即时编译或JIT编译(just-in-time compilation)。如代码在像“运行时”这样一个“代理”的上下文中执行,就称为托管代码(managed code)。执行时不需要"运行时"的代码称为本机代码(native code)或者非托管代码(unmanaged code)。

可以用ILDASM对程序集反汇编,提取C#编译器生成的CIL。可以用一些混淆器减少别人获取源代码的可能性。有很多工具可以将CIL反编译成C#。

1.6多个.NET框架

书中提到,.NET Core才算.NET的未来。然而我在自己vs2022里只有.NET Framework。

你可能感兴趣的:(C#学习笔记,c#,学习,笔记,.net,开发语言)