C# : new and virtual keywords

Example demonstrate how we can access derived class method without overridng the base class method.
Fiddle

public class Base
{
public virtual void Run()
{
Console.WriteLine("Base running");
}
}

public class Derieved : Base
{
public new void Run()
{
Console.WriteLine("Derieved running");
}
}

public class Program
{
public static void Main()
{
Base b = new Derieved();
var b1 = b as Derieved;
// Always make sure to check if casting worked or not
if (b1 != null)
{
b1.Run(); // Derieved running
}

b.Run(); // Base running
}
}

Advertisements

About Gokul Dahal, Nepal

Software Engineer, Freelancer, Design and Develop web applications,Software Developer Nepal, FreeLancer Nepal Contact : gokuldahal@gmail.com
This entry was posted in C# and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s