Javascript与C#引用类型

c#

我是 C# 新手,发现引用类型定义与 JavaScript 不同。

谁能解释为什么 C# 返回 30,而不像 JS 返回 20?

Javascript

class Person {
  constructor(age) {
    this.age = age;
  }
}

let person = new Person(20);

const old = (age) => {
  age += 10;
};

old(person.age);
console.log(person.age); // 20

C#

    class Program
    {
        public class Person
        {
            public int Age;
        }
        public static void Old(Person person)
        {
            person.Age += 10;
        }
        static void Main(string[] args)
        {
            var person = new Person() {Age = 20};
            Old(person);
            Console.WriteLine(person.Age); // 30
        }
      
    }


回答

在您的 JS 示例中,您只是传递了年龄 - 一个简单的数字。在您的 C# 示例中,您正在传递Person对象本身。

如果您将 JS 更改为

const old = (person) => {
  person.age += 10;
};

你会得到你想要的结果


以上是Javascript与C#引用类型的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>