类和结构实际上都是创建对象的模版,每个对象都包含数据,并提供了处理和访问数据的方法。
结构和类的区别是它们在内存中的存储方式,访问方式和他们的一些特性。
ref参数,通过值传送变量是默认的,可以迫使值参数通过引用传送给方法。
out参数,输出的值赋予通过引用传递给方法的变量即可。
命名参数,参数一般需要按照定义的顺序传送个方法,命名参数允许安任意顺序传递。
参数也可以是可选的。必须为可选参数提供默认值。可选参数还必须是方法定义的最后一个参数。
JIT编译器可生成高度优化的代码,并在适当的时候随意得内联代码。
编写静态构造函数,类有一些静态字段或属性,需要在第一次使用类之前,从外部源中初始化这些静态字段和属性。
构造函数初始化器,两个构造函数初始化了相同的字段,最好把所有的代码放在一个地方。
常量的概念就是一个包含不能修改的值的变量。readonly比const,运行之前是未知的。
var和new关键字一起使用时,可以创建匿名类型。
这些新对象的类型名未知。编译器为类型伪造了一个名称,但只有编译器才能实用它。
有时仅需要一个小的数据结构,类提供的功能多于我们需要的功能,由于性能原因,最好使用结构。
对于结构,变量声明实际上是为整个结构在栈中分配空间,所以可以给其他字段设置值。
结构是会影响性能的值类型,内联或者保存在栈中。
结构作为参数来传递或把一个结构赋予另样的一个结构,结构的所有内容都被复制。
partial关键字允许把类,结构或接口放在多个文件中。多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。