c# – 为什么Type.IsByRef类型String返回false如果String是引用
发布时间:2020-12-15 03:44:58 所属栏目:百科 来源:网络整理
导读:根据 this,一个字符串(或String)是一个引用类型. 但给出: Type t = typeof(string); 然后 if (t.IsByRef) ... 返回false 为什么? 编辑:经过一些快速测试,我显然误会了IsByRef的目的… 即使使用类名代替’string’,也返回false.我正在编写一个通用类,并且
根据
this,一个字符串(或String)是一个引用类型.
但给出: Type t = typeof(string); 然后 if (t.IsByRef) ... 返回false 为什么? 编辑:经过一些快速测试,我显然误会了IsByRef的目的… 解决方法
您应该使用IsValueType:
bool f = !typeof (string).IsValueType; //return true; 对于IsByRef,此属性的目的是确定参数是通过ref还是通过值传递给方法. 你有一个通过ref传递一个方法的例子: public static void Foo(ref int a) { } 您可以确定是否通过引用传递: bool f = typeof (Program).GetMethod("Foo") .GetParameters() .First() .ParameterType .IsByRef; //return true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |