2017-02-13 5 views
0

Давайте предположим, мы имеем свойство, как:Добавить дженерики динамически существующего свойства

private Action<String> actions= null; 

Есть ли способ действительно изменить «<>» часть переменной?

Например, я хотел бы изменить действия, которые содержат две строки входа вместо одного, например:

private Action<String, String> actions= null; 

Любой способ сделать это, если да, то каким образом? Может быть, с отражением?

+3

В каком контексте? Можете ли вы объяснить немного больше, что вы хотите сделать? –

+1

не уверен, что вы просите. У вас есть скомпилированная сборка или что? – peval27

+0

@NicoSchertler im пытается. Позвольте мне попробовать и отредактировать. – Asperger

ответ

1

Плохая новость заключается в том, что то, о чем вы просите, не может быть сделано. На самом деле, это не имеет смысла. Понятие, которое вы придумали, чтобы динамически добавить общий аргумент к типу, скорее, а, как выразиться, psyhedelic. (Итак, предположим, что вы могли бы динамически изменить его: что бы вы сделали с ним? Как бы вы его вызвали, когда любой существующий код, который его использует, ожидает, что он будет иметь только один общий аргумент?)

Хорошей новостью является то, что вы не нужно ничего делать, потому что уже существует Action<String,String>.

+2

Да, и на самом деле есть причина, по которой мне действительно нужно установить их динамически. Я заметил, что это действительно странно, поэтому кажется, что на неправильном треке или требуется изменение дизайна. – Asperger

+0

Существует класс вопросов здесь, в stackoverflow, которые подпадают под категорию «проблема X/Y». (http://xyproblem.info/) Возможно, вы можете быть одним из них. Возможно, вам лучше объяснить, что вы изначально хотели выполнить, и спросить, как чтобы выполнить это, вместо того, чтобы придумать дикую идею о том, как можно выполнить свою первоначальную задачу и спросить, будет ли дикая идея работать. –

+0

Я согласен с тобой. – Asperger

Смежные вопросы