如何传递定义为 interface<generictype> 的参数?

我正在尝试使用带有参数的方法,该方法是一个接口,带有尖括号中的泛型类型,但我不知道如何将我的值传递给它。


该方法定义如下:


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" }));

我到底应该做什么?


慕桂英546537
浏览 96回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP