CLR via c#读书笔记六:参数

注:书本第9单参数

CLR默认所有方法参数都传值。引用本身是值引的,意味左方法能修改对象,而调用都能看到这些修改。值类型,传的是实例的一个副本,所以调用者不受影响。

(和以前理解的不一样。默认都是传值的,引用类型本以为就是传指针的,但不是的;值类型是因为传了一个副本才没有改变原值)

CLR允许以传引用而非传值的方式传递参数。out和ref。他们都会生成相同的IL代码。但out不需要在调用者处初始化,而ref需要。

两个重载方法如果只有out和ref的区别,则不合法。因为在IL中,他们生成的代码是一样的。

params关键字,允许传可变数量的参数。但是只能应用于方法签名中的最后一个参数。

声明方法的参数类型时,应尽量指定最弱的类型,宁愿要接口也不要基数。

方法的返回类型声明最强的类型。

原文地址:https://www.cnblogs.com/yuzhoumanwu/p/8564574.html