据我所知Class
和Object
是引用类型。对象是否真的是引用类型?
我有下面的方法来更改值
public void ChangeValue(MyClass classobj)
{
classobj.Number = classobj.Number*2;
}
我调用该方法的价值
var myClass=new MyClass();
int myNumber = 10;
myClass.Number = myNumber;
ChangeValue(myClass);
翻番这将是回到20这是很好的,你可以把它解释为当你创建你的类的对象,然后它传递给方法的引用,它将更新参考值。
但我的问题是为什么它不发生对象类型。换句话说,为什么当我做对象和一些值分配给它象下面
object myObject = new object();
string sometext = "Some object value";
myObject = sometext;
ChangeValue(myObject)
它不会执行方法
public void ChangeValue(object objectValue)
{
objectValue = null;
}
我知道的方法参数后更改的值是值类型,但可以不明白它有两种参考类型的不同行为。
阅读以下内容:http://www.yoda.arachsys.com/csharp/parameters.html方法参数传递的一个很好的解释。 – 2013-02-22 11:37:08
Just rememboer:'object'是一个别名'System.Object',它是一个类,这意味着它是一个引用类型。 – 2013-02-22 11:37:26
另外:http://stackoverflow.com/questions/3272861/reference-and-value-types-scenario http://stackoverflow.com/questions/1658985/what-is-a-value-class-and-what- is-a-reference-class-in-c – 2013-02-22 11:37:39