[英]C# simple constructor overload
我正在做一個非常簡單的重載構造函數練習,但是遇到了沒有重載的發現參數的情況。 我以為我做對了,但是也許我做錯了什么?
namespace A3_Date_StudentWork
{
class MyDate
{
private int newMonth;
private int newDay;
private int currentMonth;
private int currentDay;
public MyDate(int month, int day)
{
newMonth = month;
newDay = day;
}
public MyDate(int month, int day, int cmonth, int cday)
{
newMonth = month;
newDay = day;
currentMonth = cmonth;
currentDay = cday;
}
}
}
這是我的主要新對象的樣子
MyDate today = new MyDate(todayMonth, todayDay);
MyDate bday = new MyDate(bdayMonth, bdayDay);
MyDate combine = new MyDate(bdayMonth, bdayDay, todayMonth, todayDay);
這是一個非常簡單的程序,我所有的變量都是int。 我整個主:
static void Main(string[] args)
{
int todayMonth = 0;
int todayDay = 0;
int bdayMonth = 0;
int bdayDay = 0;
Console.WriteLine("What is today's month?");
Int32.TryParse(Console.ReadLine(), out todayMonth);
// Console.WriteLine(todayMonth);
Console.WriteLine("What is today's date?");
Int32.TryParse(Console.ReadLine(), out todayDay);
// Console.WriteLine(todayDay);
Console.WriteLine("What is your birth month?");
Int32.TryParse(Console.ReadLine(), out bdayMonth);
// Console.WriteLine(bdayMonth);
Console.WriteLine("What is your birth date?");
Int32.TryParse(Console.ReadLine(), out bdayDay);
// Console.WriteLine(bdayDay);
MyDate today = new MyDate(todayMonth, todayDay);
MyDate bday = new MyDate(bdayMonth, bdayDay);
MyDate combine = new MyDate(bdayMonth, bdayDay, todayMonth, todayDay);
這是帶有構造函數的基類
{
class MyDate
{
private int newMonth;
private int newDay;
private int currentMonth;
private int currentDay;
public MyDate(int month, int day)
{
newMonth = month;
newDay = day;
}
public MyDate(int month, int day, int cmonth, int cday)
{
newMonth = month;
newDay = day;
currentMonth = cmonth;
currentDay = cday;
}
基類實際上是MyDate類
這里只是技術方面的建議。 當您有多個構造函數時,應盡可能通過傳遞值從一個構造函數中調用另一個。 這也稱為“構造函數鏈接”。
這是一個基於您的代碼的示例:
class MyDate
{
private int newMonth;
private int newDay;
private int currentMonth;
private int currentDay;
public MyDate(int month, int day)
: this(month, day, 0, 0)
{ }
public MyDate(int month, int day, int cmonth, int cday)
{
newMonth = month;
newDay = day;
currentMonth = cmonth;
currentDay = cday;
}
}
在這種簡單情況下,當您使用2個參數(月和日)調用構造函數時,其他參數默認為0。 您還可以使參數可為空,以便可以為其分配空值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.