确保在DerivedClass C#中调用base方法 [英] Make sure base method gets called in DerivedClass C#

查看:73
本文介绍了确保在DerivedClass C#中调用base方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何确保在DerivedClass C#中调用基本方法。

how to Make sure base method gets called in DerivedClass C#.

class a
{
public virtual fun1(){}
}
class b: a
{
static void mail(string[]args)
{
// here how we do call all base method must call.
// not using like base().fun1();
}
}

推荐答案

A级

{

public virtual void Fun()

{

Console 。写(A级!);

}

}



B级:A

{

public override void Fun()

{

//调用将打印A类的基本方法!

base.Fun();

Console.Write(B级!);

}

}

现在当你这样做:



B b =新B();

b.Fun();



检查一次...........
class A
{
public virtual void Fun()
{
Console.Write("Class A!");
}
}

class B : A
{
public override void Fun()
{
// call the base method which will print Class A!
base.Fun();
Console.Write("Class B!");
}
}
Now when you do this:

B b = new B();
b.Fun();

Check this once...........


看看这个 Stack Overflow 问题:自动调用基本方法 [ ^ ]。
Have a look at this Stack Overflow question: "Automatically call base method"[^].


为什么你不想直接在Class'B中调用Class A的'base.fun();'无论你是否使A'有趣虚拟,你都能做到这一点吗?



请记住标记为虚拟的函数具有选项以提供实现。
Why do you not want to call Class A's 'base.fun();' directly in Class 'B, which you can do whether or not you make A's 'fun virtual ?

Remember that a function marked virtual has the option to provide an implementation.
public class A
{
    public virtual void fun() { Console.WriteLine("Class A fun");}
}

public class B: A
{
    public void fun()
    {
        base.fun();
        Console.WriteLine("Class B fun");
    }
}

不使用'覆盖,或'新的,必需的,没有编译器警告。



你永远不会自动调用继承的祖先方法,因为.NET不会将事件冒泡作为其继承工具的一部分。

No use of 'override, or 'new, required, no compiler warnings.

You are never going to get automatic calling of inherited ancestor methods because .NET does not implement event-bubbling as part of its inheritance facility.


这篇关于确保在DerivedClass C#中调用base方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆