Regular Ball Super Ball

Description:

Regular Ball Super Ball

Create a class Ball.

Ball objects should accept one argument for "ball type" when instantiated.

If no arguments are given, ball objects should instantiate with a "ball type" of "regular."

using System;

public class Ball {
  public string ballType { get; set; }
  public Ball(){
    ballType = "regular";
  }
  public Ball(string ballType) {
    this.ballType=ballType;
  }
}

其他人的解法:

一:使用了Optional Arguments ,这是C#4.0的新特性。  

What's New in Visual C# 2010 

using System;

public class Ball {
  public string ballType { get; set; }
  
  public Ball(string ballType = "regular") {
    this.ballType = ballType;
  }
}

关于构造函数中使用this ,可以参考这个https://msdn.microsoft.com/zh-cn/library/ms173115(v=vs.110).aspx

using System;

public class Ball {
  public string ballType { get; set; }
  
  public Ball(string ballType) {
     this.ballType = ballType;
  }
  
  public Ball(): this("regular"){}
}

 A constructor can invoke another constructor in the same object by using the this keyword. Like base, this can be used with or without parameters, and any parameters in the constructor are available as parameters tothis, or as part of an expression. For example, the second constructor in the previous example can be rewritten using this:

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

The use of the this keyword in the previous example causes this constructor to be called:

public Employee(int annualSalary)
{
    salary = annualSalary;
}
原文地址:https://www.cnblogs.com/chucklu/p/4611306.html