这是什么<>";方法背后意味着什么
本文关键字:方法 背后 意味着 什么 quot 是什么 lt gt | 更新日期: 2023-09-27 17:51:14
像这样:
var result1 = GetData<double>(someString);
var result2 = GetData<string>(someString);
这是什么意思?
< >
如何返回数据?
public object GetData<Type>(string a)
{
// How do I know I should return this...
return 2.2;
// or this?
return "2.2";
}
您在这里看到的被称为泛型。您可以在MSDN上详细阅读它们。简而言之,您可以在指定方法的同时指定一个Type Parameter
。根据类型,可以采用不同的代码路径。阅读链接以获取示例。
在您的特定情况下,返回类型与类型参数无关。你正在处理两件不同的事情。因此,在返回时,您可以使用这两个语句中的任何一个。
return 2.2;
这将返回一个long
2.2。而另一个语句将返回一个CCD_ 3,该CCD_。由于您的退货类型为Object
,因此两者都可以接受。虽然你没有在问题中这么说,但你正在寻找的是这样的东西:
//Your generic GetData method
public TEntity GetData<TEntity>(string arg1)
{
var toReturn;
//Do some calculations
return (TEntity)toReturn;
}
现在,当你打这样的电话时:
var t = GetData<string>(string1);
变量CCD_ 6将保持CCD_。如果你打这样的电话:
var t = GetData<int>(string1);
变量CCD_ 8将保持并且CCD_。
这是泛型方法的类型参数。
您要查找的术语是泛型。这些是方法中的类型参数,这意味着方法/类可以以类型安全的方式处理特定类型,而不是回到object
的所有类型(这也会对装箱/取消装箱产生性能影响(。
来自C#指南:
泛型允许您定义类型安全的数据结构,而不需要致力于实际的数据类型。这导致性能提升和更高质量的代码,因为您可以重用数据处理算法,而不复制特定类型的代码。
几个快速链接:
- 。Nutshell中的NET泛型
- C#泛型简介
一个名为Generic method的方法后面的符号。它将在运行时延迟类型推断。
如果您将调用方法控制为,您的GetData可能会被重写如下
GetData<float>("2.2")
GetData<string>("2.2")
public static T GetData<T>(string a)
{
return (T)Convert.ChangeType(a, typeof(T));
}