我正在尝试使用带有参数的方法,该方法是一个接口,带有尖括号中的泛型类型,但我不知道如何将我的值传递给它。
该方法定义如下:
public static class Settings {
public static void UpdateSetting<TType>(ISetting<TType> setting)
{
// Do its thing
}
}
现在我尝试使用我的代码来调用它,例如:
Settings.UpdateSetting<MyParticularSettingType>(new MyParticularSettingType { Value = "settingvalue"});
与,别处...
public class MyParticularSettingsType : Setting<string>
和...
public abstract class Setting<TType> : ISetting<TType>
但是在参数上,我得到一个错误。
无法从 MyNameSpace.MyParticularSettingType 转换为 SettingsNamespace.ISetting<MyNameSpace.MyParticularSettingType>
我试过铸造它,虽然它摆脱了编译错误,但它在运行时抛出了一个异常
无法将“MyNameSpace.MyParticularSettingType”类型的对象转换为“SettingsNamespace.ISetting`1[MyNameSpace.MyParticularSettingType]”
Settings.UpdateSetting((ISetting<MyParticularSettingType>)(new MyParticularSettingType { Value = "settingvalue" }));
我到底应该做什么?
相关分类