如何存储类型T
本文关键字:类型 存储 何存储 | 更新日期: 2023-09-27 18:25:07
如果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)
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();
}
你的意思是这样的吗:
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");
}
我建议研究C#中的泛型。这就是C#处理模板的方法。
遗传学导论。
您可能还试图简单地存储类型。此时,您将希望使用Type类的GetType方法或TypeOf关键字来获取类型。