C#学习之路

本文介绍了C#中的结构体与类的区别,值类型和引用类型的使用,枚举的声明与使用,以及委托和Action/Func的定义,以及ref和out关键字在参数传递中的作用。
摘要由CSDN通过智能技术生成

结构体 

  • ==和Equals
  1. ==是比较运算符,Equals是对象中的一个方法 point1.Equals(point2)
  2. ==如果两边的操作数都是值类型那么比较值(struct中不支持==比较),如果两边是引用类型比较的是引用地址
  3. Equals(struct中支持),比较的是结构体对象中所有对象的值是否相等,也可用于引用类型的比较,比较的是引用地址是否相同
  • struct是值类型(栈中存储),class是引用类型(栈中存储变量,堆中存储内容)
  • struct中的字段不能赋初值

枚举

  • enum 名字 {值} 
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是为赋值的变量直接以引用形式传参,会更新他的赋值

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值