Example #1
0
        private static void CSharpFeature1()
        {
            //隐式接口实现
            IMarketProvider  marketProvider   = new HKMarketProvider();
            HKMarketProvider hkMarketProvider = new HKMarketProvider();

            marketProvider.Order();
            hkMarketProvider.Order();

            //因为显式接口约束,SZMarketProvider无法直接方法接口方法,只能通过接口访问
            //SZMarketProvider szMarketProvider=new SZMarketProvider();
            //szMarketProvider.Order();
            IMarketProvider IszMarketProvider = new SZMarketProvider();

            IszMarketProvider.Order();
        }
Example #2
0
        private static void CSharpFeature2()
        {
            //匿名方法
            Task.Run(() => { Console.WriteLine("Lambda的方式调用匿名方法"); });
            Task.Run(delegate(){ Console.WriteLine("委托的方式调用匿名方法"); });

            //泛型方法
            HKMarketProvider    hkMarketProvider    = new HKMarketProvider();
            SZMarketProvider    szMarketProvider    = new SZMarketProvider();
            VIPInvestmenter     vipInvestmenter     = new VIPInvestmenter();
            GeneralInvestmenter generalInvestmenter = new GeneralInvestmenter();

            hkMarketProvider.CostCalculation <VIPInvestmenter>(vipInvestmenter);
            szMarketProvider.CostCalculation <VIPInvestmenter>(vipInvestmenter);
            hkMarketProvider.CostCalculation <GeneralInvestmenter>(generalInvestmenter);
            szMarketProvider.CostCalculation <GeneralInvestmenter>(generalInvestmenter);

            //协变
            List <VIPInvestmenter> vipInvestmenterList = new List <VIPInvestmenter>();

            vipInvestmenterList.Add(new VIPInvestmenter());
            IEnumerable <Investmenter> investmenters = vipInvestmenterList;

            foreach (Investmenter investmenter in investmenters)
            {
                investmenter.GetName();
            }
            //逆变省略........

            //迭代器
            HKTradeDay hKTradeDay = new HKTradeDay();

            foreach (string day in hKTradeDay)
            {
                Console.WriteLine("hk market trade day is " + day);
            }
        }