我正在尝试使用带有参数的方法,该参数是尖括号中似乎是通用类型的接口,但我不知道如何将值传递给它。
该方法定义如下:
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&lt; MyNameSpace.MyParticularSettingType&gt;
我已经尝试过它,但是当它摆脱编译错误时,它会在运行时抛出异常
无法转换类型&#39; MyNameSpace.MyParticularSettingType&#39;输入&#39; SettingsNamespace.ISetting`1 [MyNameSpace.MyParticularSettingType]
Settings.UpdateSetting((ISetting<MyParticularSettingType>)(new MyParticularSettingType { Value = "settingvalue" }));
我到底应该做什么?
答案 0 :(得分:4)
尝试以这种方式调用方法。
Settings.UpdateSetting<string>(new MyParticularSettingType { Value = "settingvalue"});