2017-02-13 106 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