Я пытаюсь использовать метод с параметром, который представляет собой интерфейс с чем-то вроде общего типа в угловых скобках, но я не знаю, как передать в него свое значение.
Метод определен примерно так:
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 'для ввода' SettingsNamespace.ISetting`1 [MyNameSpace.MyParticularSettingType]
Settings.UpdateSetting((ISetting<MyParticularSettingType>)(new MyParticularSettingType { Value = "settingvalue" }));
Что именно я должен делать?