在我的代码中,我一直在生成如下函数:
public void Foo([ParamsDictionary] IAttributesCollection kwargs) {}
但我很好奇。什么都实现了这个接口?所以我取下了Ironpython的源代码。在里面我找到了这个文件:
Src\Runtime\Microsoft.Scripting\Runtime\ParamDictionaryAttribute.cs
在第24-30行,它有:
/// Most languages which support params dictionaries will support the following types:
/// IDictionary<string, anything>
/// IDictionary<object, anything>
/// Dictionary<string, anything>
/// Dictionary<object, anything>
/// IDictionary
/// IAttributesCollection (deprecated)
注意弃用的行。我是否应该不使用上面的方法签名,而是使用IDictionary<string,object>?声明方法的首选方法是什么?
(是否可以在代码部分加粗文本?)