我有一个具有一个实现的通用基类:
public abstract class Setting<T> : ISetting
{
public T DefaultValue { get; }
}
public class SubscribeToNewsletterSetting : Setting<bool>
{
...
}
现在我有了一个设置类,使用此设置:
public class UserSettings
{
..
public T GetSetting<T>(int ownerId)
where TType : ISetting
{
...
}
}
现在我可以像这样使用UserSettings
类:
var setting = settings.GetSetting<SubscribeToNewsletterSetting>(22);
var settingsValue = setting.DefaultValue;
现在,我想知道-是否可以在不指定类型的情况下一步完成此操作:例如:
var settingsValue = settings.GetSettingDefaultValue<SubscribeToNewsletterSetting>(22);
((我不想这样称呼)
var settingsValue = settings.GetSettingDefaultValue<SubscribeToNewsletterSetting, bool>(22);
干杯,曼努埃尔
[如果我正确理解了问题,那么您也想将SubscribeToNewsletterSetting
的实例也视为boolean
值,如果是的话,那么接下来可以做:
public class SubscribeToNewsletterSetting : Setting<bool>
{
public static implicit operator bool(SubscribeToNewsletterSetting value)
{
// your code here of how to convert instance of SubscribeToNewsletterSetting to boolean instead of my return default(bool)
return default(bool);
}
}
public static async Task Main()
{
...
// Will work fine.
bool isEnabled = settings.GetSetting<SubscribeToNewsletterSetting>(22);
}