Col*_*nic 8 .net c# immediate-window visual-studio
我在Visual Studio的即时窗口中.有一个变量p.我怎样才能推断出变量 的类型p?
我尝试p.GetType()但返回了对象 的类型p.就我而言,这是一种非常特殊的类型(例如,有时候ChessPlayer,有时候TennisPlayer).我想知道变量的类型,即.确定变量可用方法的类型p.
编辑:我认为这是一件合理的事情.我正在尝试检查变量,p但我不知道它是!通常在Visual Studio中我只是将鼠标悬停在变量上,它告诉我它的类型,或者我输入.并且自动完成列出了它的方法.然而,没有一个在立即窗口中工作,我只有这个变量p我不知道它是什么或我能用它做什么:(
c#为此提供了很多方法:)
要获得特定类型的精确副本,您需要执行此操作
if (p.GetType() == typeof(YourDesiredType))
Run Code Online (Sandbox Code Playgroud)
如果你想知道p是否是你想要的类型的实例那么
if (p is YourDesiredType)
Run Code Online (Sandbox Code Playgroud)
或者你可以试试这个
YourDesiredType ydp = p as YourDesiredType;
Run Code Online (Sandbox Code Playgroud)
在这种情况下(因为我不确定在您的方案中是否可能)当OP想要知道编译类型然后我只建议使用通用列表
因为通过保持类型安全列表,每个人都可以轻松跟踪其类型
惊讶这是如此困难,最后我写了这个方法,它似乎给出了正确的答案。
public static class Extensions
{
public static Type GetVariableType<T>(this T instance)
{
return typeof(T);
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
void Main()
{
IList x = new List<int>{};
x.GetVariableType().Dump();
}
Run Code Online (Sandbox Code Playgroud)
印刷System.Collections.IList
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |