【问题标题】:what is 'this' constructor, what is it for什么是'this'构造函数,它的用途是什么
【发布时间】:2013-09-10 21:59:22
【问题描述】:

我正在学习,但我有一个问题无法找到满意的答案。

this我需要一个概要。我不断看到它,人们已经建议修复我使用它的代码。我真的不知道它到底做了什么。如果有人愿意给我一个基本的概要,我会非常高兴。

【问题讨论】:

  • @ripdaddy69 对,OP 可以查看 java 文档以了解 20 年前的 C#。
  • @HighCore 该问题当时没有附加特定语言。
  • @ripdaddy69 没问题老兄,石器时代的历史书总是很有趣。

标签: c# .net constructor this


【解决方案1】:

它用于引用同一类中的另一个构造函数。你用它来“继承”另一个构造函数:

public MyClass() {}

public MyClass(string something) : this() {}

在上面,当调用第二个构造函数时,它首先执行无参数构造函数,然后再执行自身。请注意,使用: this() 等效于: base(),只是它引用的是同一类中的构造函数,而不是父类。

有一篇关于构造函数here (MSDN)的文章,提供了一个用法示例:

public Employee(int annualSalary)
{
    salary = annualSalary;
}

public Employee(int weeklySalary, int numberOfWeeks)
    : this(weeklySalary * numberOfWeeks)
{
}

【讨论】:

    【解决方案2】:

    用于调用类中的另一个构造函数:

    public class Test {
        public Test() : this("AmazingMrBrock")
        {
    
        }
    
        public Test(string name) 
        {
           Console.WriteLine(name);
        }
    
    }
    

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

    【讨论】:

      【解决方案3】:

      this 关键字在许多情况下使用,并且只有复制整个权威来源才能给出完整的答案。 The C# Language Reference

      this 关键字引用类的当前实例并且是 也用作扩展方法的第一个参数的修饰符。

      【讨论】:

        【解决方案4】:

        this 关键字引用类的当前实例,也用作扩展方法的第一个参数的修饰符。

        看到这个:http://msdn.microsoft.com/en-us/library/vstudio/dk1507sz(v=vs.120).aspx

        【讨论】:

          猜你喜欢
          • 2012-12-28
          • 2015-06-05
          • 2010-09-27
          • 2011-12-17
          • 2010-11-21
          • 1970-01-01
          • 2010-11-06
          • 2018-01-17
          相关资源
          最近更新 更多