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
    }
}

results matching ""

    No results matching ""