【问题标题】:Missunderstood the point of a class constructor [duplicate]误解了类构造函数的要点[重复]
【发布时间】:2021-09-25 23:35:10
【问题描述】:

我对 C# 很陌生。刚开始学习 OOP 和类。

我在阅读的一些东西中遇到了这个类:

public class Thissser
{
    public string whatever;

    public Thissser(string whatever)
    {
        this.whatever = whatever;
    }
}

构造函数中写的都是this.whatever = whatever;

这样做有什么意义,为什么需要它?

【问题讨论】:

  • 假设您有Person 的概念。但是你说“如果你创造了一个人,我需要 100% 确定他们有一个名字”。这就是为什么你需要一个构造函数——强制提供一个名字(或出生日期,或身高,或其他)。还有其他原因,但在介绍级别 - 这是主要原因。因此,您的代码在构造函数中采用whatever(按照我的类比中的“名称”的行来思考)参数,然后将其存储在一个字段中。
  • 您所指的代码行仅用于在构造函数中设置成员。通常,在编写这样的代码时,这意味着当有人实例化 Thissser 类时,他/她需要传入某种东西。
  • 我添加了一些链接供您查看。如果您想成为一名优秀的开发人员,您应该学习的第一件事是如何进行研究。有数以千计的关于 OOP 的书籍/文章/视频/等

标签: c# oop constructor


【解决方案1】:

它将public string whatever 设置为string whatever 是什么。用不同的名字会更容易理解

public class Thissser
{
  public string instance_whatever;

  public Thissser(string incoming_whatever)
  {
    this.instance_whatever = incoming_whatever;
  }
}

【讨论】:

    【解决方案2】:

    我们使用构造函数将对象初始化为默认或初始状态。基元的默认值可能不是您想要的。使用构造函数的另一个原因是它通知依赖关系。

    更多详情请参考:Javatpoint

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 2015-12-01
      • 2018-11-01
      • 2017-10-30
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多