В моем коде я делал такие функции, как:
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 ? Какой способ объявления моих методов является предпочтительным?
(Можно ли выделить текст в разделах кода?)