你怎么看到类型参数的实际runtype?

时间:2014-12-08 14:58:38

标签: c# .net generics

说我有这样的代码

       public bool ProcessChangeRequest(ChangeRequest cr, ChangeCommitted cc)
        {
        DbObject.AssertDirectAccessToDatabase();
        SeqlDatabase<ContextT>.CheckObjectType(cr, typeof(ConfigT));
        return SeqlDatabase<ContextT>.Instance.TryUpdate(delegate()
           {
               SeqlDatabase<ContextT>.UpdateModification(cr);
                  .....

当我调试时,如何查看ContextT的实际类型是什么?

2 个答案:

答案 0 :(得分:2)

转到Immediate Window(Ctrl + D + I)并输入typeof(ConfigT)

QuickWatch(Ctrl + D + Q)也有效。

答案 1 :(得分:2)

我假设当你在断点时,ContextT在范围内。

有几种方法可以做到这一点,一种方法是将鼠标悬停在ContextT代码的引用上并检查变量 - 我个人认为该对话框有点复杂。

我个人打开我的即时窗口并输入:

? ContextT.GetType().FullName

请注意,GetType()会为您提供更多信息,但FullName属性可确保您只获得一行而不是几十个不相关的属性!

typeof(ContextT)与.GetType()的效果大致相同(至少在这种情况下是这样)。