Наследование в C #: как вызвать конструктор базового класса, когда я вызываю конструктор производного класса - PullRequest
6 голосов
/ 15 декабря 2010

Я пытаюсь выяснить, как вызвать конструктор базового класса, когда я вызываю конструктор производного класса.

У меня есть класс с именем "AdditionalAttachment", который унаследован от System.Net.Mail.Attachment.Я добавил еще 2 свойства в мой новый класс, чтобы у меня были все свойства существующего класса Attachment с моими новыми свойствами

public class AdditionalAttachment: Attachment
{
   [DataMember]
   public string AttachmentURL
   {
       set;
       get;
   }
   [DataMember]
   public string DisplayName
   {
       set;
       get;
   }
}

Раньше я использовал для создания конструктор, такой как

//objMs - это объект MemoryStream

Attachment objAttachment = new Attachment(objMs, "somename.pdf")

Мне интересно, как я могу создать конструктор такого же типа для моего класса, который будет делать то же самое, что и описанный выше конструктор базового класса

Ответы [ 4 ]

13 голосов
/ 15 декабря 2010

Это передаст ваши параметры в конструктор базового класса:

public AdditionalAttachment(MemoryStream objMs, string displayName) : base(objMs, displayName)
{
   // and you can do anything you want additionally 
   // here (the base class's constructor will have 
   // already done its work by the time you get here)
}
7 голосов
/ 15 декабря 2010

Используйте эту функцию:

public AdditionalAttachment(MemoryStream ms, string name, etc...)
       : base(ms, name) 
{
}
7 голосов
/ 15 декабря 2010

Вы можете написать конструктор, который вызывает базовый конструктор класса:

public AdditionalAttachment(MemoryStream objMs, string filename)
    : base(objMs, filename)
{
}
3 голосов
/ 15 декабря 2010
public class AdditionalAttachment: Attachment
{
   public AdditionalAttachment(param1, param2) : base(param1, param2){}
   [DataMember]
   public string AttachmentURL
   {
       set;
       get;
   }
   [DataMember]
   public string DisplayName
   {
       set;
       get;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...