c# - 如何确定变量的类型? (不是对象的类型)

标签 c# .net visual-studio immediate-window

我在 Visual Studio 的即时窗口中。有一个变量 p。我如何推断变量 p 的类型?

我尝试了 p.GetType() 但它返回了 object p 的类型。在我的例子中,这是一个非常特殊的类型(例如,有时是 ChessPlayer,有时是 TennisPlayer)。我想知道变量的类型,即。确定变量 p 上可用的方法的类型。


编辑:我认为这是一件很合理的事情。我正在尝试检查变量 p 但我不知道它是什么!通常在 Visual Studio 中,我只需将鼠标悬停在变量上,它就会告诉我它的类型,或者我键入 .,自动完成会列出它的方法。然而,在即时窗口中这些都不起作用,我只有这个变量 p 我不知道它是什么或者我能用它做什么 :(

最佳答案

没想到这么难,最后我写了这个方法,似乎给出了正确的答案。

public static class Extensions
{
    public static Type GetVariableType<T>(this T instance)
    {
        return typeof(T);
    }
}

示例用法:

void Main()
{
    IList x = new List<int>{};
    x.GetVariableType().Dump();
}

打印 System.Collections.IList

关于c# - 如何确定变量的类型? (不是对象的类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13491903/

相关文章:

c# - 以编程方式创建 WPF 窗口

visual-studio - 在 Visual Studio 的 vcproj 项目中自动包含文件夹的所有 .cpp/.h 文件

c# - 如何在 C# 程序中禁用 Microsoft Word 的文件使用框

c# - SqlDependency 锁表?

c# - 我是否遗漏了什么或者这不是声明事件的正确方式?

.net - .Net PE 文件中的入口点 RVA 是什么?

c# - 我想将 Umbraco 4.11.6 升级到 4.11.9

c# - 来自 ASP.NET Web 应用程序的 Word 邮件合并

c# - 如何从 sqlite 数据库检索 float 到 C# 文本框

c++ - C++ 中的 Visual Studio 调试错误