开发者

Populate base class along with child class?

开发者 https://www.devze.com 2023-01-15 03:21 出处:网络
I have a need where I have to add some new fields to an existing class along with all its existing fields/attributes.

I have a need where I have to add some new fields to an existing class along with all its existing fields/attributes.

So whenever my derived class is filled by DAL, I will be filling all fields of base class as well. Currently, I am 开发者_JAVA百科doing it like this but not sure this is the right way ? Please give me an example. Also I am not sure whether the base class object will be a new one each time a derived class is initialized ?

public class Employee
    {
        private int _id;
        private int _name;
        public int ID
        { 
            set { _id=value;}
            get { return _id;}
        }
        public int Name
        { 
            set { _name=value;}
            get { return _name;}
        }
        protected void SetName ()
        {
            _name=value;
        }
        protected void SetID()
        {
            _id=value;
        }
    }
public class EmployeeWithDepartmentName:Employee
        {
           private string _deptName;
           public string DeptName 
            {
                set { _deptName=value; }
            }
            public setBaseEmpName()
            {
               base.SetName();
            }
        public setBaseID()
            {
               base.SetID();
            }
        }


Everything in a base class can automagically be accessed from derived classes without doiing anything, just use the property/method name directly.

public class MyBase
{
    public string UserName {get;set;}
}

public class MyClass : MyBase
{
  public void DoSomething()
  {
     Console.WriteLine("UserName: {0}", UserName);
     UserName = "Anders";
  }
}

You can also do this:

MyClass myClass = new MyClass();
myClass.UserName = "Rune";

Protected means that only derived classes can access the property/method. Public means that everyone can access the properties/methods.

Also I am not sure whether the base class object will be a new one each time a derived class is initialized ?

It's not two objects, it's one object created from two different classes (that's how inheritance works).

Read this article about inheritance: http://www.csharp-station.com/Tutorials/lesson08.aspx

0

精彩评论

暂无评论...
验证码 换一张
取 消