【发布时间】:2016-09-05 21:35:28
【问题描述】:
假设我有这样的代码,MonoDevelope 以 .Net 3.5 为目标:
public void TestTemplate<T>(Action<T> action)
{
// pseudocode
m_funcDict[typeof(T).GetHashCode()] += action;
}
public void TestUsage(object arg)
{
TestTemplate(TestUsage);
}
我得到这样的错误:
错误 CS0411:方法的类型参数 `TestTemplate(System.Action)' 不能从用法中推断出来。 尝试明确指定类型参数 (CS0411) (Assembly-CSharp)
有没有什么方法可以在不手动指定类型参数的情况下做到这一点?
我想要的只是automatically推断类型。
【问题讨论】:
-
我需要在
TestTemplate函数中对T做一些事情。确实我想用这种方式来提取TestUsage的参数信息 -
我添加了一些伪代码来解释我的目的。
-
你为什么要
typeof(T).GetHashCode()?确定typeof(T)是合适的键吗? -
@Enigmativity 之类的。这只是一个伪代码来解释我想用 T 做点什么。
-
为什么不想指定类型呢?
TestTemplate<object>(TestUsage);看起来很简单。或者您可以将TestUsage本身设为通用。
标签: c# unity3d monodevelop