zoukankan      html  css  js  c++  java
  • c#学习心得

    1.关于重载运算符

    2.包含与委托(不太明白

    class Program
        {
           
                class Radio 
                {
                protected bool on_off;
    
                public void On()
                    {
                    if (!on_off )Console .WriteLine ("Radio is now on!");
                        on_off  = true;
                    }
                
                public void Off()
                {
                    if (!on_off) Console.WriteLine("Radio is now off!");
                    on_off = false;
                }
                }
          
        }
        class AlarmClock
        {
            private int currentTime;
            private int alarmTime;
    
            protected virtual  void SoundAlarm()
            {
                Console.WriteLine("Buzz!");
    
            }
            public void Run()
            {
                for (int currentTime = 0; currentTime < 43200; currentTime++)
                {
                    SetCurrentTime(currentTime);
                    if (GetCurrentTime() == GetAlarmTime())
                    {
                        Console.WriteLine("Current Time = {0}!", currentTime);
                        SoundAlarm();
                        break;
                    }
                }
    
            }
            public int GetCurrentTime()
            {
                return currentTime;
            }
            public void SetCurrentTime(int aTime)
            {
                currentTime = aTime;
            }
            public int GetAlarmTime()
            {
    
                return alarmTime;
    
            }
            public void SetAlarmTime(int aTime)
            {
                alarmTime = aTime;
            }
        }
        class ClockRadio : AlarmClock
        {
            private Radio radio;//声明其他成员的变量
            public bool radioAlarm;
    
            public ClockRadio()
            {
                radio = new Radio();
                radioAlarm = false;
            }
            //-------------Delegate to Radio---------------
            public void RadioOn()
            {
                radio.On();
            }
            public void RadioOff()
            {
                radio.Off();
            }
            //--------------Overridde AlarmClock-----------------
            protected override void SoundAlarm()
            {
                if (radioAlarm)
                {
                    RadioOn();
    
                }
                else
                {
                    base.SoundAlarm();
    
                }
            }
            //-------New ClockRadio functionalitiy------------
            public void SetRadioAlarm(bool useRadio)
            {
                radioAlarm = useRadio;
            }
    
        }
        class ContInh
        {
            static int Main(string[] args)
            {
                ClockRadio clockRadio;
    
                clockRadio = new ClockRadio();
    
                clockRadio.SetRadioAlarm(true);
                clockRadio.SetAlarmTime(100);
                clockRadio.Run();
    
                //wait for user to acknowledge the results
                Console.WriteLine("Hit Enter to terminate....");
                Console.Read();
                return 0;
            }
        }
    

      错误提示:

    错误 1 未能找到类型或命名空间名称“Radio”(是否缺少 using 指令或程序集引用?) c:\users\administrator\documents\visual studio 2012\Projects\ConsoleApplication36\ConsoleApplication36\Program.cs 75 17 ConsoleApplication36

    is 关键字与as关键字

    //类 类对象 方法 接口
        public interface IPrintMessage
        {
            void Print();
        }
        class Class1
        {
            public void Print()
            {
                Console.WriteLine("from class1 ");
            }
        }
        class Class2 : IPrintMessage
        {
            public void Print()
            {
                Console.WriteLine("from class2");
            }
        }
        class Mainclass
        {
            public static void Main()
            { 
            PrintClass PrintObject = new PrintClass ();
            PrintObject.PrintMessage();
            }
        }
        class PrintClass
        {
            public void PrintMessage()
            {
    
                Class1 Object1 = new Class1();
                Class2 Object2 = new Class2();
    
    
                PrintMessageFromObject(Object1);
                PrintMessageFromObject(Object2);
    
            }
            private void PrintMessageFromObject(object obj)
            {
                if (obj is IPrintMessage)//对象标识符 关键字is 接口标识符
                {
                    IPrintMessage PrintMessage;
    
                    PrintMessage = (IPrintMessage)obj;//访问对象接口实现时 先声明一个接口类型的变量 然后将对象类型转换成接口类型
                    PrintMessage.Print();
                }
            }
        }
     private void PrintMessageFromObject(object obj)
            {
    
    
                IPrintMessage PrintMessage;
    
                PrintMessage = obj as IPrintMessage;//对象标识符 关键字as 接口标识符 
                if (PrintMessage != null)//c#关键字null(空值)
                    PrintMessage.Print(); 
            }
    

      



  • 相关阅读:
    June 26th 2017 Week 26th Monday
    June 25th 2017 Week 26th Sunday
    June 24th 2017 Week 25th Saturday
    June 23rd 2017 Week 25th Friday
    June 22nd 2017 Week 25th Thursday
    2018最佳网页设计:就是要你灵感爆棚!!!
    图片素材类Web原型制作分享-Pexels
    想要打动HR的心,UX设计师求职信究竟应该怎么写?
    【UXPA大赛企业专访】Mockplus:“设计替代开发”将成为现实
    2018年最好的医疗网站设计及配色赏析
  • 原文地址:https://www.cnblogs.com/ttplearning/p/12314914.html
Copyright © 2011-2022 走看看