2017-02-13 115 views
0

讓我們假設我們有這樣一個屬性:動態添加泛型現有屬性

private Action<String> actions= null; 

有沒有辦法真正改變的變量「<>」的一部分?

比如我想改爲包含兩個字符串輸入,而不是一個動作,例如:

private Action<String, String> actions= null; 

沒有辦法做到這一點,如果這樣的話怎麼辦?也許用反思?

+3

在什麼情況下?你能解釋一下你想做什麼嗎? –

+1

不確定你在問什麼。你有一個編譯的程序集或什麼? – peval27

+0

@NicoSchertler即時通訊嘗試。讓我試着編輯。 – Asperger

回答

1

壞消息是,你所要求的是不能做到的。其實,這是沒有道理的。你提出的概念,動態地爲一個類型添加一個泛型參數,而是,呃,如何表達它,是令人窒息的。 (所以,假設你可以動態地改變它,你將如何處理它?當使用它的現有代碼期望它只有一個泛型參數時,你將如何調用它?)

好消息是,你應該不需要做那樣的事情,因爲已經存在Action<String,String>

+2

是的,實際上我真的需要動態設置它們是因爲我注意到它很奇怪,所以它看起來是在錯誤的軌道上或者需要改變設計 – Asperger

+0

有一個類在這個問題上的問題屬於「X/Y問題」類別(http://xyproblem.info/)。你可能是其中之一,你可能會更好地解釋你最初想要完成的事情,要完成它,而不是想出一個如何完成你原來的任務的瘋狂想法,並詢問這個瘋狂的想法是否會起作用。 –

+0

我同意你的觀點。 – Asperger