I have two classes inherited from a base class, is it possible to use different enum
on their respective class?
public abstract class BaseClass
{
public enum BaseEnum {a,b,c}
public void Function1(BaseEnum myEnum)
{
// Something here
}
}
public class DerivedClass1 : BaseClass
{
public enum DerivedEnum {d,e,f}
public void Function1(DerivedEnum myEnum)
{
// Something here
}
}
public class DerivedClass2 : BaseClass
{
public enum DerivedEnum2 {g,h,i}
public void Function1(DerivedEnum2 myEnum)
{
// Something here
}
}
I tried to hide the base enum
where Function1 will perform different operations based on MyEnum, I am not sure am I doing this right. Is this a good way to use different enum
in inherited class? And I am not sure if this is a good practice
public abstract class BaseClass
{
public enum MyEnum {a,b,c}
public void Function1(MyEnum myEnum)
{
// Something here
}
}
public class DerivedClass1 : BaseClass
{
public new enum MyEnum {d,e,f}
}
public class DerivedClass2 : BaseClass
{
public new enum MyEnum {g,h,i}
}
You can use generics like this :
public abstract class BaseClass<TEnum> where TEnum : Enum
{
public void Function1(TEnum myEnum)
{
// Something here
}
}
public class DerivedClass1 : BaseClass<DerivedEnum>
{
}