RSS

Intelligent Copy Constructor

14 Apr

Whenever I wanted to add a new field to a class that has a copy constructor I had to add the new field into the body of the copy constructor.
Fact that this is very dangerous, I thought I implement a copy constructor that works with reflections.
This piece of code enumerates all fields of MyClass and copies the values in the new created object.

public MyClass(MyClass mc)
{
    FieldInfo[] classfields= GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
    foreach (FieldInfo fi in classfields)
    {
        fi.SetValue(this, fi.GetValue(mc));
    }
}
Advertisements
 
1 Comment

Posted by on April 14, 2010 in C-Sharp

 

Tags:

One response to “Intelligent Copy Constructor

  1. hmm...?

    October 13, 2010 at 07:35

    thanks

     

Leave a Reply

Please log in using one of these methods to post your comment:

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

 
%d bloggers like this: