【问题标题】:What would be the < after a function name?函数名后面的 < 是什么?
【发布时间】:2019-11-23 18:41:08
【问题描述】:

正如问题所示,我已经进行了搜索,发现它与方法声明的泛型类型有关,我们可以在链接上找到:

In C#, What is <T> After a Method Declaration? 例如:函数(T a,T b)

我已经看到它与我们何时想要传递不同类型的参数有关。

但在以下示例中,它似乎具有特定类型(来自 .NET)并且没有参数:

public class Program  
{  
    public static void Main(string[] args)  
    {  
            var host = new WebHostBuilder()  
            .UseKestrel()  
            .UseContentRoot(Directory.GetCurrentDirectory())  
            .UseStartup<Startup>()  
            .Build();  
            host.Run();  
    }  
} 

我们可以看到 .UseStartup() 这是什么原因?

【问题讨论】:

标签: c# .net oop


【解决方案1】:

2 overloadsUseStartup,一个采用泛型类型参数,这是您展示的示例,还有一个采用Type 参数作为常规参数的非泛型。

在您展示的版本中,&lt;Startup&gt; 是通用参数,这是在编译时将类型作为特殊参数传递给方法的语法。

这样的非泛型重载:

/// ...
.UseStartup(typeof(Startup))
// ...

此重载允许您在运行时决定使用什么 Type,而常见的用例是在编译时使用通用版本传递一个已知的。

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 2018-10-14
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多