CONSTRUCTOR
◎ CONSTRUCTOR 建構式
STATIC CONSTRUCTOR | 非STATIC CONSTRUCTOR |
---|---|
不用new一個物件成員就會自動被觸發 | 需在new一個物件成員才會被觸發 |
不可以加任何存取修飾詞 | 存取修飾詞一定要設為「public」 |
◎ 兩種呼叫 CONSTRUCTOR 建構式的方式
備註:其實如果是用第二種方式,在 Class 裡面的 Constructor 可以不用特別寫出來,但僅限這個Class沒有繼承任何Class
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Gamer> gamerList = new List<Gamer>();
//第一種:用這種方式的,必須每次都要傳兩個參數進去,因為很不彈性,故不推薦使用
gamerList.Add(new Gamer(1, "Name01"));
//第二種:用這種方式的,不用每次傳固定的參數進去,推薦使用這種方式
gamerList.Add(new Gamer { Id = 2, Name = "Name02", Level = 20, Experience = 5000 });
gamerList.Add(new Gamer { Id = 3, Name = "Name03", Level = 14, Experience = 4500 });
gamerList.Add(new Gamer { Id = 4, Name = "Name04", Level = 19, Experience = 6000 });
gamerList.Add(new Gamer { Id = 5, Name = "Name05", Level = 32, Experience = 8000 });
foreach (Gamer gamer in gamerList)
{
Console.WriteLine(gamer.Id + ", " + gamer.Name + ", " + gamer.Level + ", " + gamer.Experience);
}
/*
//也可以用這種方式宣告物件,但僅限這個Class沒有繼承任何 Class
Gamer gamerA = new Gamer
{
Id = 6,
Name = "Name06",
Level = 75,
Experience = 9000
}
Console.WriteLine(gamerA.Id + ", " + gamerA.Name + ", " + gamerA.Level + ", " + gamerA.Experience)
*/
Console.ReadLine();
}
}
public class Gamer
{
#region Field
public int Id { get; set; }
public string Name { get; set; }
public int Hp { get; set; }
public int Mp { get; set; }
public int GameScore { get; set; }
public int Experience { get; set; }
public int Level { get; set; }
#endregion
#region Constructor 建構式
//第一種:用這種方式的,必須每次都要傳兩個參數進去
//List<Gamer> gamerList = new List<Gamer>();
//gamerList.Add(new Gamer(1, "Name01"));
public Gamer(int id, string name, int hp = 1, int mp = 1, int gameScore = 0, int experience = 0, int level = 1)
{
Id = id;
Name = name;
Hp = hp;
Mp = mp;
GameScore = gameScore;
Experience = experience;
Level = level;
}
//第二種:用這種方式的,不用每次傳固定的參數進去,推薦使用這種方式
//List<Gamer> gamerList = new List<Gamer>();
//gamerList.Add(new Gamer{Id=1, Name = "Name01"});
public Gamer()
{
Id = 0;
Name = "";
Hp = 1;
Mp = 1;
GameScore = 0;
Experience = 0;
Level = 1;
}
#endregion
}
}