c# - 在构造函数中或在类的顶部创建一个对象

标签 c# class constructor object instantiation

哪个声明/实例化更好,为什么?

public class MainWindow
{
   private Test _test;

   public MainWindow()
   {
       _test = new Test();
   }
}

public class MainWindow
{
   private Test _test = new Test();

   public MainWindow()
   {

   }
}

最佳答案

问问自己这个问题:当您将其他构造函数添加到 MainWindow 时会发生什么?您是否需要记住调用其他构造函数以确保 _test 被正确初始化?或者如果使用另一个构造函数,_test 可以不被初始化吗?

就个人而言,在创建 UI 组件时,我会将尽可能多的故障点从构造函数中移出,我会将类似的东西移到 Loaded 事件处理程序中,或者像你一样保留它在选项 2 中做了(它使初始化很好地本地化在文件中)。

关于c# - 在构造函数中或在类的顶部创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4219759/

相关文章:

c# - 使用 Reflection.Emit 调用基类方法

python nameerror 名称未定义

c++ - 构造函数符号的双重发射

c# - for 循环中的预递减值在第一个循环中未正确递减值

c# - 使用 json.net 将 JSON 字符串反序列化为对象

c# - 来自 ReadOnlyCollection<T> 的对象 []

Java游戏选择玩家类

c++ - 模板类运算符重载返回类型

c++ - 构造函数 : Why does 'explicit' prevent assignment construction?

c++ - 在 C++ 类中有条件地启用构造函数