加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中是否有方法继承?

发布时间:2020-12-15 23:54:03 所属栏目:百科 来源:网络整理
导读:我想知道是否有任何功能,如方法继承而不是整个类继承,让我详细说明我想解释的内容: class a { public void GetA(){ // some logic here}}class b { public void GetB() : new Class().GetA()} 我知道它看起来很奇怪,但我正在阅读如何在对象组合模式中进行委
我想知道是否有任何功能,如方法继承而不是整个类继承,让我详细说明我想解释的内容:

class a {
   public void GetA(){
     // some logic here
}
}

class b {
    public void GetB() : new Class().GetA()
}

我知道它看起来很奇怪,但我正在阅读如何在对象组合模式中进行委托,我出于某种原因认为这种模式.

解决方法

如果您只想在GetB()中调用GetA(),但不想在GetB()中定义或显式引用类a的实例,则可以将GetA()作为委托传递.

在C#中,有许多预定义的委托,例如Action和Func.或者,您可以随时滚动自己的委托以匹配方法签名.

class a
    {
        public void GetA()
        {
            Console.WriteLine("Hello World!");
        }
    }

    class b
    {
        // No explicit reference to class a of any kind.
        public void GetB(Action action)
        {
            action();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var a = new a();
            var b = new b();

            b.GetB(a.GetA);
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读