亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#學習基礎概念二十五問續2第1/2頁

2020-01-24 03:49:45
字體:
來源:轉載
供稿:網友
6.sealed 修飾符是干什么的?
答:
sealed 修飾符表示密封
用于類時,表示該類不能再被繼承,不能和 abstract 同時使用,因為這兩個修飾符在含義上互相排斥
用于方法和屬性時,表示該方法或屬性不能再被繼承,必須和 override 關鍵字一起使用,因為使用 sealed 修飾符的方法或屬性肯定是基類中相應的虛成員
通常用于實現第三方類庫時不想被客戶端繼承,或用于沒有必要再繼承的類以防止濫用繼承造成層次結構體系混亂
恰當的利用 sealed 修飾符也可以提高一定的運行效率,因為不用考慮繼承類會重寫該成員
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example06
{
    class Program
    {
        class A
        {
            public virtual void F()
            {
                Console.WriteLine("A.F");
            }
            public virtual void G()
            {
                Console.WriteLine("A.G");
            }
        }
        class B : A
        {
            public sealed override void F()
            {
                Console.WriteLine("B.F");
            }
            public override void G()
            {
                Console.WriteLine("B.G");
            }
        }
        class C : B
        {
            public override void G()
            {
                Console.WriteLine("C.G");
            }
        }
        static void Main(string[] args)
        {
            new A().F();
            new A().G();
            new B().F();
            new B().G();
            new C().F();
            new C().G();
            Console.ReadLine();
        }
    }
}
結果:
類 B 在繼承類 A 時可以重寫兩個虛函數,如圖所示:

由于類 B 中對 F 方法進行了密封, 類 C 在繼承類 B 時只能重寫一個函數,如圖所示:

 
控制臺輸出結果,類 C 的方法 F 只能是輸出 類B 中對該方法的實現:
A.F
A.G
B.F
B.G
B.F
C.G 

7.override 和 overload 的區別?
答:
override 表示重寫,用于繼承類對基類中虛成員的實現
overload 表示重載,用于同一個類中同名方法不同參數(包括類型不同或個數不同)的實現
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example07
{
    class Program
    {
        class BaseClass
        {
            public virtual void F()
            {
                Console.WriteLine("BaseClass.F");
            }
        }
        class DeriveClass : BaseClass
        {
            public override void F()
            {
                base.F();
                Console.WriteLine("DeriveClass.F");
            }
            public void Add(int Left, int Right)
            {
                Console.WriteLine("Add for Int: {0}", Left + Right);
            }
            public void Add(double Left, double Right)
            {
                Console.WriteLine("Add for int: {0}", Left + Right);
            }
        }
        static void Main(string[] args)
        {
            DeriveClass tmpObj = new DeriveClass();
            tmpObj.F();
            tmpObj.Add(1, 2);
            tmpObj.Add(1.1, 2.2);
            Console.ReadLine();
        }
    }
}
結果:
BaseClass.F
DeriveClass.F
Add for Int: 3
Add for int: 3.3 

8.什么是索引指示器?
答:
實現索引指示器(indexer)的類可以象數組那樣使用其實例后的對象,但與數組不同的是索引指示器的參數類型不僅限于int
簡單來說,其本質就是一個含參數屬性
示例: 

using System;
using System.Collections.Generic;
using System.Text;
namespace Example08
{
    public class Point
    {
        private double x, y;
        public Point(double X, double Y)
        {
            x = X;
            y = Y;
        }
        //重寫ToString方法方便輸出
        public override string ToString()
        {
            return String.Format("X: {0} , Y: {1}", x, y);
        }
    }
    public class Points
    {
        Point[] points;
        public Points(Point[] Points)
        {
            points = Points;
        }
        public int PointNumber
        {
            get 
            { 
                return points.Length; 
            }
        }    
        //實現索引訪問器
        public Point this[int Index]
        {
            get
            {
                return points[Index];
            }
        }
    }
    //感謝watson hua(http://huazhihao.cnblogs.com/)的指點
    //索引指示器的實質是含參屬性,參數并不只限于int
    class WeatherOfWeek
    {
        public string this[int Index]
        {
            get
            {
                //注意case段使用return直接返回所以不需要break
                switch (Index)
                {
                    case 0:
                        {
                            return "Today is cloudy!";
                        }
                    case 5:
                        {
                            return "Today is thundershower!";
                        }
                    default:
                        {
                            return "Today is fine!";
                        }
                }
            }
        }
        public string this[string Day]
        {
            get
            {
                string TodayWeather = null;
                //switch的標準寫法
                switch (Day)
                {
                    case "Sunday":
                        {
                            TodayWeather = "Today is cloudy!";
                            break;
                        }
                    case "Friday":
                        {
                            TodayWeather = "Today is thundershower!";
                            break;
                        }
                    default:
                        {
                            TodayWeather = "Today is fine!";
                            break;
                        }
                }
                return TodayWeather;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Point[] tmpPoints = new Point[10];
            for (int i = 0; i < tmpPoints.Length; i++)
            {
                tmpPoints[i] = new Point(i, Math.Sin(i));
            }
            Points tmpObj = new Points(tmpPoints);
            for (int i = 0; i < tmpObj.PointNumber; i++)
            {
                Console.WriteLine(tmpObj[i]);
            }

            string[] Week = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Staurday"};
            WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek();
            for (int i = 0; i < 6; i++)
            {
                Console.WriteLine(tmpWeatherOfWeek[i]);
            }
            foreach (string tmpDay in Week)
            {
                Console.WriteLine(tmpWeatherOfWeek[tmpDay]);
            }
            Console.ReadLine();
        }
    }
}
結果:
X: 0 , Y: 0
X: 1 , Y: 0.841470984807897
X: 2 , Y: 0.909297426825682
X: 3 , Y: 0.141120008059867
X: 4 , Y: -0.756802495307928
X: 5 , Y: -0.958924274663138
X: 6 , Y: -0.279415498198926
X: 7 , Y: 0.656986598718789
X: 8 , Y: 0.989358246623382
X: 9 , Y: 0.412118485241757
Today is cloudy!
Today is fine!
Today is fine!
Today is fine!
Today is fine!
Today is thundershower!
Today is cloudy!
Today is fine!
Today is fine!
Today is fine!
Today is fine!
Today is thundershower!
Today is fine!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲风情亚aⅴ在线发布| 欧美精品videos| 日本精品免费一区二区三区| 日韩一区二区av| 亚洲人成电影网站色www| 国产精品亚洲综合天堂夜夜| 欧美天堂在线观看| 成人在线一区二区| 欧美最猛性xxxxx亚洲精品| 欧美日韩视频免费播放| 欧美裸身视频免费观看| 97人人爽人人喊人人模波多| 亚洲最大福利视频| 在线一区二区日韩| 亚洲日本中文字幕| 亚洲一区二区免费| 国产精品自产拍在线观看| 超碰日本道色综合久久综合| 国产精品视频最多的网站| 亚洲一区二区三区成人在线视频精品| 亚洲偷欧美偷国内偷| 一个人看的www久久| 精品视频久久久| 亚洲女同性videos| 亚洲天堂免费在线| 欧美洲成人男女午夜视频| 久久成年人视频| 国产97在线播放| 亚洲人成在线播放| 亚洲精品99久久久久中文字幕| 国模私拍视频一区| 欧美激情视频在线观看| 中国日韩欧美久久久久久久久| 亚洲加勒比久久88色综合| 国产丝袜一区视频在线观看| 国产区精品在线观看| 久久成人精品一区二区三区| 欧美激情一区二区三区成人| 欧美成年人视频网站| 亚洲无线码在线一区观看| 国产日韩在线视频| 国模视频一区二区三区| 精品女厕一区二区三区| 精品久久久在线观看| 国产精品视频在线播放| 欧美激情一区二区三区成人| 97视频在线播放| 欧美中在线观看| 91亚洲精华国产精华| 91精品国产综合久久久久久久久| 国产精品96久久久久久| 综合136福利视频在线| 91九色精品视频| 亚洲视频一区二区三区| 欧美一区二区三区艳史| 日韩高清电影免费观看完整版| 成人午夜一级二级三级| 大胆欧美人体视频| 国产精品1区2区在线观看| 欧美极品少妇xxxxⅹ免费视频| 91国产精品电影| 欧美日韩综合视频| 国产视频精品久久久| 国产精品久久久久久久久粉嫩av| 亚洲qvod图片区电影| 久久精品国产亚洲精品| 欧美视频专区一二在线观看| 日韩美女在线观看| 国产啪精品视频| 有码中文亚洲精品| 热99精品只有里视频精品| 亚洲精品永久免费精品| 欧美国产在线视频| 国产日韩欧美在线视频观看| 欧美激情一区二区三区久久久| 日产精品久久久一区二区福利| 国产精品∨欧美精品v日韩精品| 91深夜福利视频| 日韩中文字幕在线视频| 一区二区三区 在线观看视| 久久精品91久久久久久再现| 欧美夫妻性视频| 亚洲级视频在线观看免费1级| 日韩成人在线网站| 在线观看亚洲视频| 日韩av中文字幕在线播放| 欧美极品美女电影一区| 久久精品人人爽| 亚洲精品免费av| 日韩免费电影在线观看| 热久久美女精品天天吊色| 欧美日在线观看| 国产精品第1页| 亚洲国产成人在线视频| 成人网欧美在线视频| 国产男女猛烈无遮挡91| 亚洲精品成a人在线观看| 国产在线999| 国产一区欧美二区三区| 亚洲精品国产精品国自产观看浪潮| 午夜精品一区二区三区av| 欧美电影免费观看高清完整| 日韩中文字幕网| 色999日韩欧美国产| 久久久久久久久久久国产| 2019国产精品自在线拍国产不卡| 成人激情视频在线播放| 久久久国产成人精品| 狠狠躁夜夜躁久久躁别揉| 亚洲成人a级网| 97精品伊人久久久大香线蕉| 欧美成在线视频| 午夜精品国产精品大乳美女| 69av视频在线播放| 国产精品18久久久久久首页狼| 久久久国产视频91| 成人欧美一区二区三区在线湿哒哒| 2019最新中文字幕| 中文字幕久热精品在线视频| 日韩欧美aⅴ综合网站发布| 欧美猛交免费看| 国产中文日韩欧美| 欧美成人h版在线观看| 欧美日韩国产一中文字不卡| 日韩在线视频中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 日韩欧美在线字幕| 欧美一级片在线播放| 美女性感视频久久久| 18久久久久久| 欧美在线视频免费| 4k岛国日韩精品**专区| 日韩经典第一页| 日韩av在线一区| 久久久999国产精品| 国产亚洲免费的视频看| 91精品国产高清久久久久久| 美女福利视频一区| 欧美激情中文字幕在线| 欧美专区在线视频| 九九精品在线视频| 日韩av网址在线观看| 国产精品视频公开费视频| 国产精品扒开腿做爽爽爽的视频| 欧美另类高清videos| 欧美极品欧美精品欧美视频| 久久久久久欧美| 日韩高清不卡av| 亚洲天堂网在线观看| 久久久91精品| 久久天天躁狠狠躁夜夜爽蜜月| 91av在线播放| 国产成人精品一区二区在线| 亚洲成人精品视频在线观看| 富二代精品短视频| 日韩精品免费在线观看| 欧美大片第1页| 精品亚洲永久免费精品| 亚洲加勒比久久88色综合| 国产91露脸中文字幕在线| 91久久国产婷婷一区二区| 亚洲女性裸体视频| 亚洲第一综合天堂另类专| 欧美肥婆姓交大片|