C#轉換關鍵字

implicit爲隱式的轉換

explicit爲顯示的轉換

通過這種方法可以有效地驗證數據, 對參數進行處理。 不管是否實用, 在此先記錄下來 以後回顧用


class 轉換關鍵字
    {
        class MyAge
        {
            private Int32 age = 0;

            public Int32 Age
            {
                get { return age; }
                set { age = value; }
            }

            public MyAge()
            {
                
            }

            private MyAge(Int32 age)
            {
                this.age = age;
            }

            //整型到MyAge 的隱式轉換
            public static implicit operator MyAge(Int32 year)
            {
                return new MyAge(year>1980?(year-1980):-1);
            }

            //MyAge 到整型的顯式轉換
            public static explicit operator Int32(MyAge age)
            {
                if (age == null)
                {
                    throw new ArgumentNullException("參數爲空。");
                }

                if ((age.Age < 0) || (age.Age > 150))
                {
                    throw new InvalidCastException("不可能的年齡值。");
                }

                return age.Age;
            }

            //MyAge 到String類型的隱式轉換  個人理解 隱式轉換就是自動轉換
            public static implicit operator String(MyAge age)
            {
                return "我的年齡是" + age.Age.ToString();
            }
        }
        static void Main(string[] args)
        {
            MyAge age=new MyAge();
            //執行顯示類型轉換: MyAge轉換爲Int32
            Int32 bornAge = (Int32) age;
            //執行隱式類型轉換: Int32轉換爲MyAge
            age = DateTime.Now.Year;
            //執行隱式轉換: MyAge轉換爲string
            Console.WriteLine(age);
            Console.ReadKey();
        }
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章