[英]How to see what class was passed into template in Rider as an argument?
我在 Rider 中调试了很多 C# 模板,想知道它是否可行,如果是,那么如何在 Rider 中查看哪些类进入模板?
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
//Your code goes here
Console.WriteLine("Hello, world!");
}
public void DoSomething<T>() {
//What is a type of T?
}
}
}
我认为先前标记的答案是正确的,但仅适用于特定情况。
如果我正确理解了该问题,则可以将其改写为“如何使用 Rider 调试器检查通用参数的类型?” 如果是这样,@nvoigt 的答案是正确的,因为调试器会向您显示断点范围内每个变量的类型。 因此,在显示的示例中:
public void DoSomething<T>(T arg)
{
...
}
但是,如果generic argument 'T'
不是method argument 'arg'
的类型,如下所示:
public T DoSomething<T>(string arg)
{
...
}
然后arg
将是定义的string
类型。 在这种情况下,您需要查看框架窗口 - 左侧的变量。 在那里,在第一行,您将能够看到执行停止的方法(通过断点),如果您展开该窗口,您将看到如下内容:
Program.DoSomething<TypePassedAsGenericArgument>()
其中TypePassedAsGenericArgument
将是类型的全名,又名 - 命名空间 + 类名:
我认为这个澄清可能会帮助一些新的编码人员。 去拿那些BUG!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.