1.1 编译
讲一下代码保存为hello.cs:
using System;
class Hello
{
static void Main(){
Console.WriteLine("Hello World!");
}
}
用csc编译一下: csc hello.cs 即生成hello.exe
csc.exe在C:\Windows\Microsoft.NET\Framework的不同Framework版本下。
可以将一个类编译成dll库形式:
csc /t:library tools.cs
在引用该命名空间的类中这样编译:
csc /r:tools.dll hello.cs
1.2 类型系统
结构类型与类类型极为相似,也表示一个数据成员和函数成员的结构。但它们的区别在于结构类型是值类型,不需要在堆上分配。结构类型不支持自定义的继承,所有的结构类型都隐式继承object。
委托类型表示对特定参数列表和返回类型的方法的引用,与其他语言的函数指针很相似,但委托是面向对象且类型安全的。
空属类型和数组类型无需声明即可使用。对于每一个非空属类型T,都有一个空属类型T?,它保存了一个额外值null。
c#的统一类型系统可以让任何类型的值都可以被当作是一个对象。引用类型的值就是object类型的值,而值类型的值则是通过装箱和拆箱操作来转换成对象的。值类型的值被转换成对象时(装箱),一个object实例(也称为“箱子”)被分配出来保存这个值。如果一个对象引用被转换成值类型时(拆箱),首先检查引用对象是不是该值类型的箱子,如果是,箱子里的值就会被复制出来。