属性和方法调用不允许作为ref或out参数值使用
2011-03-23 14:16
351 查看
http://book.51cto.com/art/200910/158498.htm
C#允许属性像字段那样使用,只是不允许将它们作为ref或out参数值来传递。ref和out参数值在内部实现时,需要将内存地址传给目标方法。但是,由于属性可能是没有支持字段的虚字段,也有可能是只读/只写的,因此不可能传递其基础存储的地址。所以,你不能将属性作为ref或out参数值来传递。同样的道理也适用于方法调用。如果需要将一个属性或者方法调用作为ref或out参数值来传递,首先必须将值复制到一个变量中,然后传递该变量。方法调用结束之后,再将变量的值赋回属性。
C#允许属性像字段那样使用,只是不允许将它们作为ref或out参数值来传递。ref和out参数值在内部实现时,需要将内存地址传给目标方法。但是,由于属性可能是没有支持字段的虚字段,也有可能是只读/只写的,因此不可能传递其基础存储的地址。所以,你不能将属性作为ref或out参数值来传递。同样的道理也适用于方法调用。如果需要将一个属性或者方法调用作为ref或out参数值来传递,首先必须将值复制到一个变量中,然后传递该变量。方法调用结束之后,再将变量的值赋回属性。
相关文章推荐
- 属性和方法调用不允许作为ref或out参数值使用
- 9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
- react 纯函数组件中使用ref属性方法
- 反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性、字段),而不去使用Invoke方法)
- 使用反射调用类型成员 方法,字段,属性
- 动态方法调用和使用action元素的method属性
- PHP __get()和__set()的使用方法(存取或者调用未定义的属性变量)
- Vue 2中ref属性的使用方法及注意事项
- 解析如何使用反射调用类型成员 方法,字段,属性
- myEclipse使用技巧:查看某方法/属性被调用的情况
- 子类与父类属性或方法重名时,使用super.(属性名/方法名)调用父类型属性或方法
- iOS上的safrai不支持使用关键字作为对象属性名称或方法名称
- Unity C# 使用反射,利用字符串作为泛型参数调用泛型方法。
- 使用反射调用私有属性和方法
- js使用数组作为参数,直接调用push与apply方法调用push的区别
- vue 使用ref 让父组件调用子组件的方法
- Struts2中使用OGNL调用静态方法及静态属性
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)
- 结构变量作为方法的参数调用,在方法内部使用的“坑”你遇到过吗?
- Ruby之旅(二) Ruby的基本语法以及对象的使用,方法的定义及调用,属性的定义及使用