1. 程式人生 > >C#靜態類的使用[簡單]

C#靜態類的使用[簡單]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;




/*靜態變數使用*/
/*以前在C++的部落格中也有介紹:靜態變數確實幫助了我們很多,使得程式運用確實比較輕鬆*/
/*實際作用:
 * 對於公有部分,我們可以使用靜態資料,建立一個例項,而使得所有人都能用(有點類似於單例模式)
 * 可以說,如果沒有靜態變數就沒有單例模式這種設計模式
 * 
 * 注意點:與其他變數不同的是,靜態變數在程式執行的時候,只會初始化一次,下次還是直接使用上次的值
 *         (想到了這裡,突然想到斐波那契數列 可以用更簡潔的方法做)
 *         
 *         類內靜態變數只能使用類.靜態變數這種操作方式,但是這種資料依然有privtae,public,protected之分 
 */


namespace StaticClass
{
    class Program
    {
        /* 計算斐波那契數列 */
        static int f = 1;
        static int getF(int i)
        {
            return f = f * i;
        }
        static void Main(string[] args)
        {
            int mul = 1;
            for (int i = 1; i <= 5; i++)
            {
                mul = getF(i);
            }


           // Console.WriteLine("{0}", mul);


            Star[] starYes = ProductStar.Manufacture();
            Console.WriteLine("昨天天空中有{0}顆星星", starYes.Length);


            Star[] starToday = ProductStar.Manufacture();
            Console.WriteLine("今天天空中有{0}顆星星", starToday.Length);


            Star[] starTom = ProductStar.Manufacture();
            Console.WriteLine("明天預測天空中有{0}顆星星", starTom.Length);
        }
    }




    /*類的靜態變數*/
    static class ProductStar
    {
        static Random r = new Random();


        public static Star[] Manufacture()
        {
            Star[] stars = new Star[r.Next(100, 300)];          //建立隨機長度汽車陣列
            for (int i = 0; i < stars.Length; i++) stars[i] = new Star();//生產汽車
            return stars;
        }
    }


    class Star
    {
        private int number = 0;


        public Star() { this.number++; }
        public int getNumber(){
            return this.number;
        }
    }
}