【发布时间】:2019-07-12 12:28:56
【问题描述】:
我在一个 C# 项目(我不记得是哪一个)上看到了一段代码,看起来像这样:
public static class ComExt
{
// ... blablabla ...
static public void QueryService<T>(this IServiceProvider serviceProvider, out T service) where T : class
{
// ... blablabla ...
}
static public int QueryInterface(this object provider, ref Guid riid, ref IntPtr ppvObject)
{
// ... blablabla ...
}
但在第一种方法中,我不懂语法。
尤其是QueryService<T> 和(this 和) where T : class
有人可以向我解释该方法中发生了什么吗? 也许还有其他使用该语法的示例?
谢谢:)
【问题讨论】:
-
这是一种扩展方法
-
简单的研究会返回很多信息。喜欢stackoverflow.com/questions/4737970/…
-
this代表扩展方法:除了ComExt.QueryService(myProvider, out service);,它还允许myProvider.QueryService(out service);语法:as ifmyProvider有@ 987654334@方法