Im Folgenden finden Sie eine vereinfachte Version des Codes, den ich habe:
public interface IControl
{
T Value { get; }
}
public class BoolControl : IControl
{
public bool Value
{
get { return true; }
}
}
public class StringControl : IControl
{
public string Value
{
get { return ""; }
}
}
public class ControlFactory
{
public IControl GetControl(string controlType)
{
switch (controlType)
{
case "Bool":
return new BoolControl();
case "String":
return new StringControl();
}
return null;
}
}
Das Problem liegt in der GetControl-Methode der ControlFactory-Klasse. Da sie IControl zurückgibt und ich nur IControl habe, das ein generisches Interface ist. Ich kann T nicht angeben, denn im Fall von Bool wird es zu bool und im Fall von String wird es zu string.
Haben Sie eine Idee, was ich tun muss, um es zum Laufen zu bringen?