Ищем способ передачи ассоциативного массива в метод. Я пытаюсь переписать анимационный пакет Actionscript в C #, но у меня возникают проблемы с «ассоциативными» массивами / объектами. Обычно в Actionscript я могу сделать что-то вроде:
public function tween(obj:DisplayObject, params:Object = null):void {
if (params.ease != null) {
//do something
}
//...
}
И это можно назвать так:
tween(this, {ease:'out', duration:15});
Я ищу способ сделать то же самое в C #. Пока я собрал свои варианты:
a) создание класса или структуры для определения возможных ключей и типов параметров и передачи этого
b) передать параметры как универсальный тип
tween(frameworkElement, new {ease = 'out', duration = 15});
при условии
public static void tween(FrameworkElement target, object parameters);
и выясните, как использовать это в функции анимации (я не уверен, как отделить ключ = значение от данного объекта. Есть идеи?)
в) создать Dictionary<string, object>
для передачи параметров в функцию анимации
Есть еще идеи или пример кода? Я новичок в C #.
Редактировать
У меня ушел целый день, чтобы понять это:
"Анонимные типы не могут совместно использоваться через границы сборок. Компилятор обеспечивает наличие не более одного анонимного типа для данной последовательности пар имя / тип свойства в каждой сборке. Чтобы передавать структуры между сборками, вам необходимо правильно определить их . "