确保在DerivedClass C#中调用base方法 [英] Make sure base method gets called in DerivedClass C#
本文介绍了确保在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屋!
查看全文