私の知る限り、Class
参照Object
型です。
値を変更する方法は以下のとおりです
public void ChangeValue(MyClass classobj)
{
classobj.Number = classobj.Number*2;
}
メソッドを呼び出して値を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;
}
メソッドのパラメーターが値型であることは知っていますが、2つの参照型で動作が異なることを理解できません。