C# 方便初始化

C# 方便初始化,c#,constructor,initialization,C#,Constructor,Initialization,是否有一个方便的过程将下面构造函数中属性“Caller”的值分配到一行 public partial class SecurityPrompt : Form { Form1 Caller { get; set; } public SecurityPrompt(Form1 _caller) { Caller = _caller; InitializeComponent(); } } 是否有一个方便的过程将下面构造函数中属性“Calle

是否有一个方便的过程将下面构造函数中属性“Caller”的值分配到一行

public partial class SecurityPrompt : Form {

    Form1 Caller { get; set; }

    public SecurityPrompt(Form1 _caller)  {
        Caller = _caller;
        InitializeComponent();
    }
}
是否有一个方便的过程将下面构造函数中属性“Caller”的值分配到一行

public partial class SecurityPrompt : Form {

    Form1 Caller { get; set; }

    public SecurityPrompt(Form1 _caller)  {
        Caller = _caller;
        InitializeComponent();
    }
}
不可以。您当前的语法是在构造函数中指定属性的“标准”方式。没有捷径(类似或类似)。在C#中,它总是在构造函数体中内联完成。

有,但这会创建构造函数,然后分配公共属性。如果你想使用它,你必须在这里重构你的构造函数

使用对象初始值设定项:

编译器首先通过访问默认实例构造函数,然后通过处理成员初始化来处理对象初始值设定项


如果您确实使用此属性,则在创建构造函数之前不会设置属性。因此,如果您在构造函数中调用函数,希望属性在那里,那么它不会在那里。记住这一点。

不是
Caller=\u Caller已经只有一行了吗?你想把它从2行减到1行吗?我想他是在问是否有类似C++的初始化列表(C#中没有)的东西,子窗体保留父窗体的实例被认为是不好的做法;一开始你真的不应该这么做。您最好使用事件来允许子窗体中的操作影响其父窗体。谢谢@Servy,我已经修改了代码,将事件侦听器添加到子控件上现在已公开的按钮中。