结构体
- ==是比较运算符,Equals是对象中的一个方法 point1.Equals(point2)
- ==如果两边的操作数都是值类型那么比较值(struct中不支持==比较),如果两边是引用类型比较的是引用地址
- Equals(struct中支持),比较的是结构体对象中所有对象的值是否相等,也可用于引用类型的比较,比较的是引用地址是否相同
- struct是值类型(栈中存储),class是引用类型(栈中存储变量,堆中存储内容)
- struct中的字段不能赋初值
枚举
enum Days {Mon=1,tue=2,Wed=3};
Days day=Days.Mon;
if(day==Days.Mon)
{
//会进来
Console.WriteLine((int)Days.Mon);//打印1
}
委托
delegate void Xxxx(int a,bool b);//Xxxx(委托代理名
Xxxx xxx=Yyyy;//Yyyy函数名
void Yyyy(int a,bool b){
//...
}
//等同于
Action xxx=Yyyy;
void Yyyy(int a,bool b){
//...
}
//有返回值用
Func<int> func1=()=>10;//()里面是参数,返回数字10
//无返回值
Action<string> action=(name)=>Console.WriteLine("Hello",name);//<string>为参数=参数=>语句
ref 和out
- 均是将参数变成引用传递,放于参数前
- ref是已经赋值完的再次以参数形式传入,再改时也会更新赋值,
- out是为赋值的变量直接以引用形式传参,会更新他的赋值