泛型函数中的On <t>是什么意思

时间:2018-06-26 06:03:38

标签: c# generics

通用函数中 On 的含义是什么

public IPlatformElementConfiguration<T, AbsoluteLayout> On<T>() where T : IConfigPlatform
    {
        return _platformConfigurationRegistry.Value.On<T>();
    }

2 个答案:

答案 0 :(得分:3)

On是方法的名称,T是您在运行时定义的通用类型,其中T的类型为IConfigPlatform

您应该漫步

Generics (C# Programming Guide)

  

泛型已添加到C#语言的2.0版和通用   语言运行时(CLR)。泛型向.NET Framework引入了   类型参数的概念,这使得设计类成为可能   和将一种或多种类型的规范推迟到   该类或方法由客户端代码声明和实例化。对于   例如,通过使用通用类型参数T,您可以编写一个   其他客户端代码可以使用而不会产生费用的类,或者   运行时强制转换或装箱操作的风险,如下所示:

示例是一种非常简单且完全没用的通用方法

public static void Method<T>(T input)
{
    Console.WriteLine(typeof(T) + " : " + input);
}

public static void Main()
{
    Method("Hello");
    Method(234);
    Method(new DateTime());
}

输出

System.String : Hello
System.Int32 : 234
System.DateTime : 1/1/0001 12:00:00 AM

Demo Here

答案 1 :(得分:2)

On是方法的名称,而T是您将在函数中使用的通用类型的名称。

由于函数是通用的,因此您不知道方法所处理的对象的类型,因此必须为其声明某种别名。在大多数情况下,当您仅使用一种通用类型时,将使用T。另一种约定是将TResult用作通用返回类型。

此外,还有一个约束条件规定类型T必须是IConfigPlatform或从中继承。