【发布时间】:2019-04-10 23:45:21
【问题描述】:
我正在研究 C# 中的引用和值类型。根据文档字符串和对象是引用类型。当我们执行以下代码时:
static void Main(string[] args)
{
int a = 30;
object o = a;
AlterObject(o);
Console.WriteLine(o);
Console.Read();
}
static void AlterSObject(object testO)
{
int b = 130;
testO = b;
}
它打印输出为30。请解释如果对象是引用类型,为什么对象的值在函数中没有改变。
【问题讨论】:
-
因为该函数不会更改
testO变量引用的对象上的任何内容。它将变量更改为指向新的引用。如果您做了类似testO.SomeProperty = "some value";的操作,那么引用对象上的该属性就会发生变化。 -
我看不到你在哪里使用字符串。恕我直言,4 个重复项中有 3 个与问题不匹配。
标签: c#