4

I'm writing a series of math based class that each inherit from an abstract class. I want my abstract class to have a getter and setter called Parameters.

public abstract dynamic Parameters {get; set;}

Then in each individual math class I want to implement Parameters with a certain type:

If the class requires a period I would do it like this:

public override IPeriod Parameters {get; set;}

This doesn't compile. Obviously I could change the return type to dynamic and it would work, but then I lose intellisense. Is there a standard way of doing this without losing intellisense?

Every one of the class will have a Parameters {get; set;} but they will be up a different type. Is it better just to eliminate Parameters from the abstract class?

2 Answers 2

11

Yes, use generics..

public MyAbstractBaseClass<T>
{
    public abstract T Parameters {get; set;}
}

then you can inherit specifying the type that will be used for the param like..

public PeriodClass : MyAbstractBaseClass<IPeriod>
{
    public override IPeriod Parameters {get; set;}
}
Sign up to request clarification or add additional context in comments.

Comments

2

If you make parameters a generic, you can return whatever type you want:

public abstract T Parameters<T> {get; set;}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.