如何同时继承和使用另一个类?

时间:2018-02-17 11:19:35

标签: c#

C#中的另一个新手问题。   即我:

namespace MyFunctions{
    public class main{

      public void SHOW(string str){
         MessageBox.Show(str);
      }

    }
}

但是,我想将lib(rich)导入到另一个类中,例如:

namespace xyz{
    use MyFunctions.main; // <--- something like that ??
    public class A : ProgramBase{

        public void message(){
            SHOW("Hi");
        }
    }

}

如何制作它,因为我可以使这些类方法像本机方法(轻松调用)在另一个类中? (因为不允许多重继承......我不喜欢interface,因为那时我必须把方法写两次。)

2 个答案:

答案 0 :(得分:1)

你不能在C#中做多重继承,但你需要将这些方法用作本机方法,我可以想到两种方法:

  1. 用作外部库(或类只需创建新实例并使用类中的方法,它们将具有相同的确切方法名称,您可以通过继承包含该方法签名的接口来强制执行该方法。) / p>

  2. 用作扩展程序:

    namespace MyFunctions{
        public static class main{
    
          public static void SHOW(this A src, string str){
            MessageBox.Show(str);
          }
        }
    }  
    

    或者,如果您的方法SHOW并不关心调用它的类型,您可以将其设为通用:

    public static void SHOW<T>(this T src, string str){
       MessageBox.Show(str);
    }
    

答案 1 :(得分:1)

不完全是,但您可以使用委托:

stdout