将T
存储在列表/字典(例如Dictionary<string, T>
)中,如果它可以是任何内容并且没有约束,那么等同于什么?
我有Method<T>(string someString)
形式的方法。在这种方法中,我需要保存字符串和T
以供以后使用。另一种方法(来自另一个API)将使用字符串和T.这将在稍后的Task.Run中发生(我认为这与此无关)。
此类定义中没有<T>
,因为类本身不存储与T
相关的任何内容。
编辑:这是流程:
我的代码中的某处:
public void MyMethod<T>(string someString) { ... }
稍后,如果满足某些条件,我的代码中的其他位置(不一定在MyMethod类中)
public void SomeMethodFromAnotherAPI<T>(string someString)
答案 0 :(得分:1)
你的意思是这样的:
Dictionary<string, Type> dict = new Dictionary<string, Type>();
public void Method<T>(string text)
{
dict.Add(text, typeof(T));
}
public void Usage()
{
Method<string>("string");
Method<IList>("list");
Method<Action>("action");
}
答案 1 :(得分:1)
void TheirMethod<T>(string text) { }
void MyMethod<T>(string text)
{
Action action = () => TheirMethod<T>(text);
// you can now return the action,
// construct a thread with it
// add it to a List...
var thread = new Thread(new ThreadStart(action));
thread.Start();
}
答案 2 :(得分:0)
我建议在C#中查看泛型。这就是C#接近模板的方式。
您可能还试图简单地存储该类型。此时,您需要使用Type class的GetType方法或TypeOf关键字来获取类型。