【发布时间】:2011-08-19 13:17:04
【问题描述】:
我知道复杂类型在 C# 中通过引用传递,而原始类型通过值传递。我可以在 C# 中通过引用传递原始类型吗?
更新:
感谢您的回答,但我的例子是?
void test(object x) {
}
long y = 1;
test(ref y);
这会抛出这个异常:“ref”参数类型与参数类型不匹配
【问题讨论】:
-
原始和复杂在这里不是正确的术语。您在谈论值类型和引用类型。
-
你需要有
void test (ref object x),因为ref需要在方法定义和用法中都使用 -
“复杂类型”不是通过引用传递的。除非您使用 ref 或 out 关键字,否则所有类型都按值传递。
-
函数定义和函数调用都需要
ref。