This seems to be a perfect use case for the strategy pattern:
Wikipedia[
^]
I would probably turn the Strings into constants. Then you can have a dictionary with the mapping String Constant -> Implementation Class (in your example: "Normale"...). It is important that they all have a common superclass (or Interface for that matter). That way you have a
Dictionary<IMathOperationDemo>
. It looks like, that you already have this interface, which is good.
Thinking about it, you could just do it the way you did up there. Just pass Alpha and Beta in the Constructor. You don't need the dictionary I suppose. Just turn the Strings into Constants!
Why are there string arguments in all the methods? You do not use them...