【问题标题】:C# constructor using this [duplicate]使用此的 C# 构造函数 [重复]
【发布时间】:2013-10-31 19:58:42
【问题描述】:

有人可以解释构造函数中: this(123) 的含义吗?

public class MyObject
{      
    public MyObject(): this(123)
    {
    }
    ............
}

【问题讨论】:

  • 你是否有MyObject(int variable){ } 构造函数?
  • 你可以阅读构造函数here
  • 为什么不用调试器单步调试代码,看看它做了什么?
  • search了吗?我们已经有了一些可能对您有用的答案。
  • 参见底部附近的Using Constructors,其中写道:构造函数可以使用this 关键字调用同一对象中的另一个构造函数。 ...

标签: c#


【解决方案1】:

因为你的类有另一个构造函数,它接受和int 作为参数。

public class MyObject
{
    public MyObject()
        : this(123)
    {
    }

    public MyObject(int x) //something like this
    {
    }
}

见:Using Constructors (C# Programming Guide)

构造函数可以调用同一个对象中的另一个构造函数 使用this 关键字。

【讨论】:

    【解决方案2】:

    这意味着,您正在调用另一个具有固定值“123”的构造函数:

    public class MyObject
    {      
        public MyObject(): this(123)
        {
    
        }
    
        public MyObject(int number)
        {
    
        }
    }   
    

    意思是:无论何时调用new MyObject(),不带任何参数,就等于调用new MyObject(123);

    【讨论】:

    • “它等于调用 new MyObject(123);” 不是真的.. 默认构造函数中可能有其他构造函数中未执行的内容跨度>
    【解决方案3】:

    这意味着 “在执行大括号之间的内容之前,执行带有参数123的合适构造函数”

    【讨论】:

      【解决方案4】:

      提供的语法用于“构造函数链接”,即在当前构造函数的主体之前调用指定的构造函数(接受整数参数)。

      【讨论】:

        【解决方案5】:

        this 用于从同一类中的另一个构造函数调用一个构造函数。 请参阅这篇文章以获得更好的理解。

        http://www.codeproject.com/Articles/7011/An-Intro-to-Constructors-in-C

        【讨论】:

          【解决方案6】:

          您有另一个接受 int 的构造函数(认为它可以是 long 或 double,或者任何其他 int 可以隐式转换为的)

              public class MyObject
              {      
                 public MyObject(): this(123)
                 {
                 }
          
                 public MyObject(int num)
                 {
                    //do something with the num
                 }
             }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-10-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-15
            • 2018-05-11
            • 2012-01-18
            相关资源
            最近更新 更多