C#委托为什么实例化时可以不使用new

C#委托为什么实例化时可以不使用new

我很疑惑这个问题,Microsoft Learn 不是说委托是一种引用类型吗,为什么我可以像下面一样当值类型使用:

	public class MyClass
	{
		public delegate void myDelegate();
		public MyDelegate d;
		public MyClass()
		{
			d = fun;
		}
		public void fun()
		{
		}
	}

破案了,这是C#提供的语法糖。通过查看编译后的代码,发现C#将d = fun替换成了d = new MyDelegate(fun),将d += fun替换成了d = Delegate.Combine(d, new myDelegate(fun));
语法糖虽然好,但容易让人混淆概念呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值