目录
一、C# 介绍
1.1 托管代码(Manage Code ) :
1.2 基础类型库 (Base Class Library):
1.3 程序集(Assembly):
1.4 .NET 框架:
1.5 公共中间语言(Common Intermediate Language),简称 IL。
1.6 C#编译器将源代码编译成CIL,从而生成程序集。
1.7 公共语言运行时 (Common Language Runtime ),简称 CLR。
1.8 所有依赖.NET框架的应用程序都需要CLR,CLR 实现如下功能:
1.9 .NET框架:
1.10 .NET FRAMEWORK 4.8:
二、Hello World
三、基本类型
3.1 整数类型
3.1.1 整数数据
3.1.2 在指定数据类型时使用C#关键字而不是BCL名称。
3.2 浮点类型
3.2.1 浮点类型
3.2.2 与浮点数不同,decimal类型保证范围内的所有十进制数都是精确的。例如,0.1M 就是精确值,而不是一个近似值。
3.3 字面量
3.3.1 字面量(Literal value) :源代码中的常量值
3.3.2 默认情况下,输入带小数点的字面量,编译器会自动把它解释为double 类型,整数值通常默认为int,如果值太大,编译器将把它解释为long,例如:
3.3.3 整数字面量解析
3.4 布尔及字符类型
3.4.1 布尔类型
3.4.2 字符类型
3.4.3 字符类型的字面两是用单引号括起来的,如:’A’
3.4.4 可以使用4位十六进制的Unicode值 、带有强制类型转换的整数值、或十六进制表示他们
3.4.5 字符类型:转义字符
3.4.6 字符串类型
3.5 字符串字面量
3.5.1 字符串字面量必须放在双引号(“)中, 可以包含Unicode 和转义字符。
3.5.2 在C#中,可以在字符串前使用@符号,指明转义序列不被处理,结果是一个逐字字符串字面量,它不仅能将反斜杠当作普通字符处理, 也能逐字解释所有空白字符。 例如:
3.6 字符串插值
3.6.1 字符串插值使得字符串可以支持嵌入表达式。字符串插值语法在一个字符串字面量前面加上一个$符号前缀,然后将表达式嵌入大括号中, 例如:
3.6.2 字符串字面量也可以在”@”符号前面加上”$”符号的字符串插值而成,例如:
3.6.3 string 类常用静态方法
3.6.4 字符串的不可变性
四、其它介绍
4.1 using 和 using static 指令
4.1.1 using 指令有以下种用途
4.1.2 using static 指令访问类型的静态成员以及嵌套类型而不需要指定类型名。
4.2 隐式类型的局部变量
4.3 值类型和引用类型
4.3.1 C# 中数据类型分为两类
4.3.2 值类型
4.3.3 引用类型
4.4 null
4.5 显式数据类型转换
4.6 不使用转型操作符的转换
依赖于.NET 框架,在CLR(Common Language Runtime ) 管理下运行的代码
BCL 是公共语言基础标准库Common Language Infrastructure (CLI)之一,它提供了内建的数据类型表示、基本文件访问,自定义属性,格式化、安全属性、 I/O 流、字符串操纵等功能, 例如:System.Int32 , System.String
NET库和可执行文件称为程序集,程序集是编译好的,面向.NETFRAME的代码的逻辑单元。
程序集中包含的元数据描述了对应代码中定义的类型和方法。程序集也包含描述自身的程序集元数据,这种元数据包含在一个称为“清单”(manifest) 的区域中。
.NET 所有程序集的集合。
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
ILDASM
对程序集执行反汇编,显示C# 编译器生成的CIL代码。
如: ‘\u0041’ (char)65 ‘\x0041’
转义字符也能表示一个字符类型的字面量
using System;
Class Program
{
static void Main()
{
string s1 = "A string";
Console.WriteLine("s1 is" + s1);
}
}
例如:string filename = “C:\\Prosharp\\Helloworld.cs”;
Console.WriteLine($"Your full name is {firstName} {lastName}");
using System;
Class Program
{
static void Main()
{
string s1 = "Hello World!";
Console.WriteLine($@"The string is:
{s1}");
}
}
string 类型的关键特性在于它的不可变性(immutable).可以为string 变量赋一个全新的值,但出于性能考虑,没有提供修改字符串内容的机制,例如:
例如:using static System.Math;
var 用来声明隐式类型的局部变量。编译器根据声明时初始化语句推断数据类型
每个数据类型都包含一个Parse() 方法,它允许将字符串转换成对应的数值类型,例如:
string text = "9.11E-31";
float kgElectronmass = float.Parse(text);
System.Convert 也能将一种类型转换为另一种类型,但是它只支持小的数据类型,而且是不可扩展的。它允许从 char, sbyte, short, int, long, ushort, uint, ulong, float, double, decimal, DateTime 和string 类型中的一种转换到另一种类型
string middleText = "261.626";
double middle = System.Convert.ToDouble(middleText);
bool isMiddle = System.Convert.ToBoolean(middle);
所有类型都支持ToString 方法 输出一个类型的字符串表示,例如:
bool isMiddle = true;
string text = isMiddle.ToString(); // text = True;