Class
最常见的一种引用类型
class YourClassName{}
字段FLELD
是Class或Struct的成员,它是一个变量
class Octops{string name;public int Age = 10;}
READONLY
readonly修饰符防止字段在构造之后被改变
readonly字段只能在声明的时候赋值,或在构造函数里被赋值(只有这两种情况)
字段初始化
字段可以可选初始化
未初始化的字段有一个默认值
字段的初始化在构造函数之前运行
同时声明多个字段
static readonly int legs = 8, eyes = 2;
方法
通常有一些语句,会执行某个动作(最好只做一个动作)
参数
返回类型
voidref/out[public] [static] void Name([int x]){..}
方法的签名
类型内方法的签名必须唯一
签名:方法名、参数类型(含顺序,但与参数名称和返回类型无关)
class Test{static void M1(){}static void M1(int x){}}
方法在同一个类里面,名称相同,那么参数必须不同,形成重载。要么直接名称不同。
EXPRESSION-BODIED 方法
C#6
class Test{int Foo(int x) { return x * 2; }//可以简写成int Foo(int x) => x * 2; //=>代替了{}和return关键字// 没有返回类型void Foo(int x) => System.Console.WriteLine(x);}
只适用于单表达式的方法
方法的重载 OVERLOAD
类型里的方法可以进行重载(允许多个同名的方法同时存在),只要这些方法的签名不同就行
按值传递 VS 按引用传递
参数是按值传递的还是被按引用传递的,也会方法签名的一部分
void Foo(int x) { }void Foo(ref int x) { } //和上面的方法形成重载void Foo(out int x) { } //Error
本地方法(C#)
void WriteCubes(){System.Console.WriteLine(Cube(3));System.Console.WriteLine(Cube(2));System.Console.WriteLine(Cube(1));int Cube(int value) => value value value;}
不可以使用static修饰
