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(); 
            }
    

      



  • 相关阅读:
    django修身大法之一阳指
    django修身大法之归天心法
    事务(转账功能)
    el技术,,,,,JSTL技术,,,,,javaEE的开发模式
    DBUtils
    Jquery的Ajax
    实例_一个CSS开门动画
    js_快速判断浏览器是否是IE9以下版本浏览器
    html5_通过网页添加QQ或者加入QQ群
    html5_video&audio的autoplay属性失效的解决方法
  • 原文地址:https://www.cnblogs.com/ttplearning/p/12314914.html
Copyright © 2011-2022 走看看