我有一个包含参数字典的类:
public class Parameter : IExecutionParameter, IDesignerParameter
{
}
public interface IExecutionSettings
{
IDictionary<string, IExecutionParameter> Parameters { get; }
}
public interface IDesignerSettings
{
IDictionary<string, IDesignerParameter> Parameters { get; }
}
public class Settings : IExecutionSettings, IDesignerSettings
{
private Dictionary<string, Parameter> _parameters;
// TODO: Implement IExecutionSettings.Parameters
// TODO: Implement IDesignerSettings.Parameters
}
Run Code Online (Sandbox Code Playgroud)
我想创建这些接口的显式实现(我知道该怎么做),但我不知道如何正确地转换字典。
任何帮助将不胜感激。
你不能,因为它不安全。假设您可以强制转换Dictionary<string, MemoryStream>为IDictionary<string, IDisposable>- 然后您就可以通过后一个引用将任何 IDisposable值放入字典中,即使实际字典只能保存MemoryStream-compatible 引用。
您可能会创建一个只读字典包装器,它将所有读取委托给一个底层字典,并且在所有写入时失败。然后,您可以将您的内容包含Dictionary<string, Parameter>在其中两个“视图”词典中。这会有点痛苦,但可行。在您的情况下,这是否是最合适的方法是另一回事。
也许你应该有:
public interface IExecutionSettings
{
IExecutionParameter this[string key] { get; }
}
public interface IDesignerSettings
{
IDesignerParameter this[string key] { get; }
}
Run Code Online (Sandbox Code Playgroud)
您可以在Settings.
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |