<t>在C#语法中表示什么?</t>

时间:2014-01-31 06:19:06

标签: c#

以下语法是什么意思?具体而言,&lt;&gt;括号? (似乎无法谷歌)

public T Execute<T>(RestRequest request) where T : new()
{ .... }

这是我的理解;

public =功能的可见性。

T =返回类型(可能在代码中的其他位置定义)

(RestRequest request) =函数参数列表。 request是唯一的参数

剩余的位 - Execute<T> ... where T : new()对我来说很奇怪而且很新。

可能相关,但以下内容实际上又回归了什么? (如;是否返回函数或对象或对某事物的引用?)

return Execute<Call>(request);

这两段代码片段均来自RestSharp文档维基示例代码 - https://github.com/restsharp/RestSharp/wiki/Recommended-Usage

4 个答案:

答案 0 :(得分:2)

  

T =返回类型(可能在代码中的其他位置定义)

实际上它是在<>之间定义的。当您去调用此函数时,您将自己的类型放在括号中,因此在return Execute<Call>(request);中转到函数签名public Call Execute(RestRequest request);

where T : new()是对括号中的内容的限制,你声明的是要传递的内容,因为T必须包含一个公共的默认构造函数(即new()意味着什么。

答案 1 :(得分:1)

  

剩余的位 - Execute<T> ... where T : new()对我来说很奇怪而且很新。

因此,Execute是方法名称。 <T>是通用参数TSee Generics (C# Programming Guide)),where T : new()是通用约束,需要T具有无参数构造函数。

  

可能相关,但以下内容实际上又回归了什么? (如;是否返回函数或对象或对某事物的引用?)

     

return Execute<Call>(request);

由于Execute<T>返回T并且您使用T = Call进行了调用,因此此实例将返回Call类实例(如果仅null则返回Call }是class,而不是struct)。

答案 2 :(得分:0)

这里表示您的集合的类型,它可以是预定义的数据类型或用户定义的数据类型,如任何类

答案 3 :(得分:0)

这是对泛型参数的约束。通用类和方法结合了可重用性,类型安全性和效率。新约束指定泛型类声明中的任何类型参数都必须具有公共无参数构造函数。要使用新约束,类型不能是抽象的。

http://msdn.microsoft.com/en-us/library/0x6a29h6.aspx

http://msdn.microsoft.com/en-us/library/sd2w2ew5.aspx