C#インタフェースマルチステートインスタンス

1150 ワード

C#インタフェースで異なるクラスを伝達するマルチステートを実現
インタフェースおよびクラスの定義
//    ,define interface
    interface IAction
    {
        string Act();
    }
    /// 
    ///  A    ,class a inherit interface IAction
    /// 
    class InterfaceTest :IAction
    {
        public string Act()
        {
            return "this class a.Act";
        }
    }
    /// 
    ///  B    ,class a inherit interface IAction
    /// 
    class Bclass : IAction
    {
        public string Act()
        {
            return "this class b.Act";
        }
    }
    /// 
    ///  C     IAction     ,class C set the interface as parameter
    /// 
    class Cclass
    {
        public string CallFun(IAction action)
        {
            return action.Act();
        }
    }

よびだし
//    ,instantiate
InterfaceTest aclass = new InterfaceTest();
Bclass bclass = new Bclass();
Cclass cclass = new Cclass();
//              ,use the class as parameter to call different functions
MessageBox.Show(cclass.CallFun(bclass)+"
"+ cclass.CallFun(aclass));