|
|
1
38
|
|
|
2
9
如果你有
如果你不这样做
|
|
|
3
7
您需要进一步检查参数的类型。例如,如果你有
那么参数的名称就不会是
|
|
|
4
1
如果参数的声明带有byref关键字,则parameterInfo.parameterType.isByRef返回true;如果声明带有byval关键字,则返回false(无论参数的类型是按值(如结构)还是按引用(如类))。 为了举例说明,请考虑以下结构和类(我使用的是VB代码):
并且假设您有以下方法,为上面定义的结构和类接受byval和byref参数(注意,从vb 2012开始,您可以省略byval关键字,因为它是默认的):
下面的代码测试parameterInfo.parameterType.isByRef方法:
您将得到以下输出:
如您所见,参数info.parameterType.isByRef对于参数s2和c2返回true,因为它们是用byRef关键字定义的,即使其中一个是结构(值类型),另一个是类(引用类型);对于用byVal关键字定义的参数返回false。 但是请注意,byval关键字并不意味着所有参数都将作为副本传递。即使使用了这个关键字(byval),如果类型是按引用传递的(例如,类),参数也将按引用传递,就像使用了byref关键字一样。也就是说,上面方法p的c1和c2都将通过引用传递,这意味着如果p将字段或属性更改为c1或c2,则更改将反映到调用方。(当类型是一个值(如结构)时,ByVal和ByRef通常会有所不同。) |
|
|
5
0
如果引用是
|
|
|
JBryanB · 如何从基本抽象类访问类属性 2 年前 |
|
|
Gabe Tucker · 无法在golang中分配接口对象指针 3 年前 |
|
|
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |
|
|
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 7 年前 |
|
|
Randall Flagg · 访问propertyinfo中的属性 7 年前 |
|
|
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 7 年前 |
|
|
tobeypeters · 反射铸造 7 年前 |
|
|
myst02 · 如何在另一个方法之后调用该方法? 7 年前 |