C # - Конструкторы и наследование - PullRequest
3 голосов
/ 27 января 2009

У меня есть два класса, объявленных так:

class Object1
{
    protected ulong guid;
    protected uint type;

    public Object1(ulong Guid, uint Type)
    {
        this.guid = Guid;
        this.type = Type
    }
    // other details omitted
}

class Object2 : Object1
{
    // details omitted
}

В клиентском коде я хочу иметь возможность создавать экземпляр каждого объекта следующим образом:

Object1 MyObject1 = new Object1(123456789, 555);
Object2 MyObject2 = new Object2(987654321, 111);

Как я могу заставить Object2 использовать конструктор Object1 таким образом? Thankyou.

Ответы [ 3 ]

9 голосов
/ 27 января 2009
class Object2 : Object1
{
   Object2(ulong l, uint i ) : base (l, i)
   {
   }
}
1 голос
/ 27 января 2009

Дайте Object2 конструктор, подобный этому: -

public Object2(ulong Guid, uint Type): base(Guid, Type)
1 голос
/ 27 января 2009

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

class Object2 : Object1
{
    public Object2(ulong Guid, uint Type) : base(Guid, Type) {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...