【问题标题】:Declaring C# variable with and without Constructor使用和不使用构造函数声明 C# 变量
【发布时间】:2014-11-11 02:36:14
【问题描述】:

我心里一直有这个疑惑。可能这是要问的正确论坛..

C#中这两种类型的变量声明有什么区别吗?如果是这样,有什么区别,哪个是最佳做法。

  DataTable dt;

  DataTable dt=new Datatable();

【问题讨论】:

标签: c#


【解决方案1】:

第一个dt可以保存继承DataTable的DataTable或对象,第一个dt完成后第一个dt的值为null

第二个 dt 可以保存 DataTable 或继承 DataTable 的对象,您使用 DataTable 的空构造函数启动它,因此它不会是 null

“Best Parctice”取决于你想用 dt 做什么。 例如,如果您在下一行有一个方法返回一个新启动的DataTable,则不必启动一个不会被使用的实例。

【讨论】:

    【解决方案2】:

    在我看来,最好的做法是始终在构造函数中初始化变量,而不是在声明中。这主要是为了保持一致性,如果你想查看一个类型是如何初始化的,你应该总是只需要查看构造函数。

    【讨论】:

      【解决方案3】:

      http://msdn.microsoft.com/en-us/library/ms173109.aspx

      如果 DataTable 是一个结构,它们是相同的

      如果不是DataTable dt;,则表示创建对名为dt 的DataTable 的empy 引用; '新数据表();'表示使用垃圾收集器中的Datatable 对象初始化引用

      【讨论】:

        【解决方案4】:

        第一个你只声明,第二个你声明和初始化。 如果您在没有初始化的情况下使用类的任何实例,那么您将得到null 引用异常Object reference not set to an instance of an object

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多