Заполните базовый класс вместе с дочерним классом? - PullRequest
0 голосов
/ 06 сентября 2010

Мне нужно добавить несколько новых полей в существующий класс вместе со всеми его существующими полями / атрибутами.

Таким образом, всякий раз, когда мой производный класс заполняется DAL, я буду также заполнять все поля базового класса. В настоящее время я делаю это так, но не уверен, что это правильный путь? Пожалуйста, дайте мне пример. Также я не уверен, будет ли объект базового класса новым при каждой инициализации производного класса?

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();
            }
        }

1 Ответ

1 голос
/ 06 сентября 2010

Ко всему базовому классу можно автоматически получить доступ из производных классов, ничего не делая, просто используйте имя свойства / метода напрямую.

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

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

Вы также можете сделать это:

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

Защищенный означает, что только производные классы могут получить доступ к свойству / методу. Публичный означает, что каждый может получить доступ к свойствам / методам.

Также я не уверен, будет ли объект базового класса новым при каждой инициализации производного класса?

Это не два объекта, это один объект, созданный из двух разных классов (так работает наследование).

Прочтите эту статью о наследовании: http://www.csharp -station.com / Tutorials / lesson08.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...