用于将参数直接传递给成员的构造函数语法

Rob*_*ino 1 c# syntax constructor

假设我有一个对象:

public class A
{
    private int m_a;
    private int m_b;
    A(int a, int b)
    {
        m_a = a;
        m_b = b;
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以完成工作,但我有一个朦胧的记忆被告知它不必要地将整数复制到参数a和b中,然后复制到m_a和m_b中.有没有办法定义类,使参数直接传递给它们的成员对应物?

请注意,我不想讨论C#Object Constructor - 简写属性语法,因为onus是在使用该类的人.

当然,我可能完全错了,也许编译器会消除这些琐事,因此我应该乐意接受任何一种方式的教育.

Jon*_*eet 6

这有效,但我有一个朦胧的记忆被告知它不必要地将整数复制到参数a和b然后再复制到m_a和m_b.

是,这些值被复制到参数 ab,然后到对象本身的状态.

从根本上说,这只是成员调用工作方式的一部分,而且是不可避免的.C#的未来版本很可能有一种方法可以在源代码中表达更简单,但是存在的"开销"仍然存在 - 并且在绝大多数程序中都是微不足道的.(事实上​​它可能被内联的JIT编译器优化了......但你几乎肯定不会担心它.)