在派生构造函数中的某些代码块之后,在派生类中调用基类构造函数

时间:2015-03-25 10:10:20

标签: c# .net constructor c#-5.0

public class bar
{
   public bar(list<int> id, String x, int size, byte[] bytes)
   {
     ...
   }
}

public class Foo: Bar
{
    public Foo(list<int> id, String x, someEnumType y):
     base(id, x, sizeof(someEnumType), y)
    {
        //some functionality
    }
}

正如您在上面的代码中看到的,我需要在调用基类构造函数之前将someEnumType转换为字节数组类型。有办法吗?类似的东西:

public class Foo: Bar
{
    public Foo(list<int> id, String x, someEnumType y)
    {
        //someEnumType to byte array
        base(...)

    }
} 

1 个答案:

答案 0 :(得分:4)

只需在派生类中创建一个方法并调用它....

public class bar
{
   public bar(list<int> id, String x, int size, byte[] bytes)
   {
     ...
   }
}

public class Foo: Bar
{
    public Foo(list<int> id, String x, someEnumType y):
     base(id, x, sizeof(someEnumType), Convert(y))
    {
        //some functionality
    }

    public static byte[] Convert(SomeEnumType type)
    {
        // do convert
    }
}