KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I was surprised to find out that the parameter-less constructor of my base class is called any time I call any constructor in a derived class. I thought that is what : base() was for, to explicitly call the base constructor if and when I want to. How can I prevent the base constructor from being called when I instantiate a derived class? using System; namespace TestConstru22323 { class Program { static void Main(string[] args) { Customer customer = new Customer("Jim", "Smith"); Customer c = new Customer(); Console.WriteLine(customer.Display()); Console.ReadLine(); } } public class Person { public Person() { Console.WriteLine("I don't always want this constructor to be called. I want to call it explicitly."); } } public class Customer : Person { private string _firstName; private string _lastName; //public Customer(string firstName, string lastName): base() //this explicitly calls base empty constructor public Customer(string firstName, string lastName) //but this calls it anyway, why? { _firstName = firstName; _lastName = lastName; } public string Display() { return String.Format("{0}, {1}", _lastName, _firstName); } } }
Tags (comma-separated)
Save Edits
Cancel