在.NET中,类对象是通过值传递还是通过引用传递

在.NET中,类对象是通过值传递还是通过引用传递,.net,.net,我们知道整数是作为值类型传递的,除非我们使用ref关键字 但是类对象呢 函数内的更新是否会导致对象更新 那绳子呢?它是一种引用类型。在这种情况下,将字符串传递给函数时的行为是否相同?对象不是作为参数传递的,而是引用。引用是按值传递的,但是引用引用的对象当然仍然是同一个对象 : 变量不直接包含其数据;它包含对其数据的引用。按值传递引用类型参数时,可以更改引用指向的数据,例如类成员的值。但是,不能更改引用本身的值;也就是说,不能使用同一引用为新类分配内存,并使其在块外保持。为此,请使用or关键字传递

我们知道整数是作为值类型传递的,除非我们使用ref关键字

但是类对象呢

函数内的更新是否会导致对象更新


那绳子呢?它是一种引用类型。在这种情况下,将字符串传递给函数时的行为是否相同?

对象不是作为参数传递的,而是引用。引用是按值传递的,但是引用引用的对象当然仍然是同一个对象

:

变量不直接包含其数据;它包含对其数据的引用。按值传递引用类型参数时,可以更改引用指向的数据,例如类成员的值。但是,不能更改引用本身的值;也就是说,不能使用同一引用为新类分配内存,并使其在块外保持。为此,请使用or关键字传递参数

我的重点


第4节:

值类型与引用类型的不同之处在于,值类型的变量直接包含其数据,而引用类型的变量存储对其数据的引用,后者称为对象。对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能会影响另一个变量引用的对象。对于值类型,每个变量都有自己的数据副本,一个变量上的操作不可能影响另一个变量


这就是为什么我认为对象根本不会被传递的原因——因为你从来没有一个变量包含对象。

对象不会作为参数传递——引用是。引用是按值传递的,但是引用引用的对象当然仍然是同一个对象

:

变量不直接包含其数据;它包含对其数据的引用。按值传递引用类型参数时,可以更改引用指向的数据,例如类成员的值。但是,不能更改引用本身的值;也就是说,不能使用同一引用为新类分配内存,并使其在块外保持。为此,请使用or关键字传递参数

我的重点


第4节:

值类型与引用类型的不同之处在于,值类型的变量直接包含其数据,而引用类型的变量存储对其数据的引用,后者称为对象。对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能会影响另一个变量引用的对象。对于值类型,每个变量都有自己的数据副本,一个变量上的操作不可能影响另一个变量


这就是为什么我认为对象根本不会被传递的原因——因为你从来没有一个变量包含对象。

对象不会作为参数传递——引用是。引用是按值传递的,但是引用引用的对象当然仍然是同一个对象

:

变量不直接包含其数据;它包含对其数据的引用。按值传递引用类型参数时,可以更改引用指向的数据,例如类成员的值。但是,不能更改引用本身的值;也就是说,不能使用同一引用为新类分配内存,并使其在块外保持。为此,请使用or关键字传递参数

我的重点


第4节:

值类型与引用类型的不同之处在于,值类型的变量直接包含其数据,而引用类型的变量存储对其数据的引用,后者称为对象。对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能会影响另一个变量引用的对象。对于值类型,每个变量都有自己的数据副本,一个变量上的操作不可能影响另一个变量


这就是为什么我认为对象根本不会被传递的原因——因为你从来没有一个变量包含对象。

对象不会作为参数传递——引用是。引用是按值传递的,但是引用引用的对象当然仍然是同一个对象

:

变量不直接包含其数据;它包含对其数据的引用。按值传递引用类型参数时,可以更改引用指向的数据,例如类成员的值。但是,不能更改引用本身的值;也就是说,不能使用同一引用为新类分配内存,并使其在块外保持。为此,请使用or关键字传递参数

我的重点


第4节:

值类型与引用类型的不同之处在于,值类型的变量直接包含其数据,而引用类型的变量存储对其数据的引用,后者称为对象。对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能会影响另一个变量引用的对象。机智
string s = "hello";
s = s + ", world!";