base C# with Example



base C# with Example

The base keyword is used to access members from a base class. It is commonly used to call base implementations 
of virtual methods, or to specify which base constructor should be called. 
Choosing a constructor 
public class Child : SomeBaseClass { 
public Child() : base("some string for the base class") 
{ 
} 
} 
public class SomeBaseClass { 
public SomeBaseClass() 
{ 
// new Child() will not call this constructor, as it does not have a parameter 
 

} 
public SomeBaseClass(string message) 
{ 
// new Child() will use this base constructor because of the specified parameter in Child's 
constructor 
Console.WriteLine(message); 
} 
} 
Calling base implementation of virtual method 
public override void SomeVirtualMethod() { 
// Do something, then call base implementation 
base.SomeVirtualMethod(); 
} 
It is possible to use the base keyword to call a base implementation from any method. This ties the method call 
directly to the base implementation, which means that even if new child classes override a virtual method, the base 
implementation will still be called so this needs to be used with caution. 
public class Parent 
{ 
public virtual int VirtualMethod() 
{ 
return 1; 
} 
} 
public class Child : Parent 
{ 
public override int VirtualMethod() { 
return 11; 
} 
public int NormalMethod() 
{ 
return base.VirtualMethod(); 
} 
public void CallMethods() 
{ 
Assert.AreEqual(11, VirtualMethod()); 
Assert.AreEqual(1, NormalMethod()); 
Assert.AreEqual(1, base.VirtualMethod()); 
} 
} 
public class GrandChild : Child 
{ 
public override int VirtualMethod() 
{ 
return 21; 
} 
public void CallAgain() 
{ 
Assert.AreEqual(21, VirtualMethod()); 
Assert.AreEqual(11, base.VirtualMethod()); 
 

// Notice that the call to NormalMethod below still returns the value 
// from the extreme base class even though the method has been overridden 
// in the child class. 
Assert.AreEqual(1, NormalMethod()); 
} 
} 

0 Comment's

Comment Form

Submit Comment