繁体   English   中英

将<>放入代码中意味着什么?

[英]What does it mean to put <> in code?

我是.NET C#的新手,正在阅读下面的代码:

var model = new TenantPageViewData<Tenant>(contentModel)

我不明白<MyClass> ,将<>放在代码中是什么意思。 另外,如果您可以引导我阅读有关此问题的文档,那将很好。

这是用于为开放的泛型类型指定type参数的语法。 您可以在此处阅读有关泛型的更多信息:

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

如果您是C#的新手,一开始它似乎很复杂,但是许多语言都使用了此功能,因此花很多时间来学习它。


在这种特殊情况下,由于没有一般文档和答案,因此TenantPageViewData公开了一个通用参数。 您将其读取为“ TenantTenantPageViewData<> ”。

该类的签名如下所示:

 public class TenantPageViewData<T> { } 

T仅是一个占位符的情况下,您可以在代码中引用该代码,这些代码在编译时将变为您指定参数类型的强类型。

可以将此类定义称为“开放”泛型类型,因为尚未实现占位符T 声明var something = new TenantPageViewData<Tenant>()是“封闭的”泛型类型,因为在该实例中,现在已知该泛型参数是Tenant

类型标识是TenantPageViewData<Tenant> 每个封闭的泛型类型 ,因此TenantPageViewData<Tenant>不是TenantPageViewData<Landlord> ,并且泛型类的static成员也对此表示敬意(这是学习泛型的常见陷阱)。


其他示例包括通常读作“ List<string>List<> ”的List<> string List<>和可笑的Cup<T> :-)

我相信这些类型的括号用于标记通用名称。

http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx

在C#中,尖括号(<和>)最常用于包围通用类的参数。 例如,.Net框架提供了一个List类,其中“ T”表示将包含在列表中的对象的类型 因此,当列表创建为

List<string> myList = new List<string>();

您正在创建List类的可用的,类型安全的实例。

这里有一些很好的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM