.NET Tip: Create a Class with Overloaded Constructors

When I create a class, I often define a constructor to ensure that the object is initially populated with all the information it needs to operate properly. As an example, one of my databound objects can take a database connection or both a database connection and an object representing the unique ID for the record. Each of these methods for instantiating the object is a separate constructor method. This tip teaches you how to overload the constructor of a class, which is the method called when you instantiate an object.

To see how this works, take a simple class (DataObject) that has three public variables on it:

public class DataObject
{
   public string Value1;
   public string Value2;
   public string Value3;

   public DataObject(string value1, string value2, string value3)
   {
      Value1 = value1;
      Value2 = value2;
      Value3 = value3;
   }

   public DataObject(DataRow inputRow)
   {
      Value1 = inputRow["value1"].ToString();
      Value2 = inputRow["value2"].ToString();
      Value3 = inputRow["value3"].ToString();
   }
}

One of the class's constructors will accept values for each of the three variables, and its other constructor will accept a DataRow that has values for each of the three variables. The code assumes that you have a database table somewhere that has fields named value1, value2, and value3, and that all three fields are strings.

To call this function, you can use one of the following methods, which will end up populating the DataObject class with the three values:

DataObject obj1 = new DataObject("test1", "test2", "test3");

DataTable dt = <code to retrieve a data table>
DataObject obj2 = new DataObject(dt.Rows[0]);

You also can use this method to overload any method on your class. As long as the parameter list is different, you can add an additional overload. You can't, for instance, have two overloads that each has three string parameters. You can have one overload that accepts one string and another that accepts two strings.

About the Author

Eric Smith is the owner of Northstar Computer Systems, a Web-hosting company based in Indianapolis, Indiana. He is also a MCT and MCSD who has been developing with .NET since 2001. In addition, he has written or contributed to 12 books covering .NET, ASP, and Visual Basic.



Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: March 19, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT The 2015 Enterprise Mobile Application Survey asked 250 mobility professionals what their biggest mobile challenges are, how many employees they are equipping with mobile apps, and their methods for driving value with mobility. Join Dan Woods, Editor and CTO of CITO Research, and Alan Murray, SVP of Products at Apperian, as they break down the results of this survey and discuss how enterprises are using mobile application management and private …

  • On-demand Event Event Date: February 12, 2015 The evolution of systems engineering with the SysML modeling language has resulted in improved requirements specification, better architectural definition, and better hand-off to downstream engineering. Agile methods have proven successful in the software domain, but how can these methods be applied to systems engineering? Check out this webcast and join Bruce Powel Douglass, author of Real-Time Agility, as he discusses how agile methods have had a tremendous …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date