什么是List <t>类?</t>

时间:2011-08-20 13:35:39

标签: c# silverlight

我无法理解这段代码:

 public class BookCategory
 {
     public string CategoryName { get; set; }
     public List<Book> Books { get; set; }
 }
 public class Book
 {
     public string Title
     {
         get;
         set;
     }
 }

它是什么意思List<Book>,它是否继承自Book课程?

6 个答案:

答案 0 :(得分:9)

List<Book> [MSDN] BookBook个对象的集合。它不会从Book继承。相反,它集合中包含零个或多个List<T>个对象。

因为List<int>类是通用的,所以可以重用它来为任何类型的对象的集合提供列表操作。您可以拥有List<string>List<object>List<T>等等,但它们都来自同一个T课程,这是DRY原则的一个很好的例子(Don' t重复自己)。在此示例中,public class Foo<T> { public T AnObject { get; set; } public Foo(T anObject) { AnObject = anObject; } } 称为类型参数,可以是任何.NET或用户定义的类型。

您可以定义自己的通用类。这是语法的一个简单示例:

Stack<T>

其他一些非常有用的.NET泛型是:

  • Queue<T> [generic]
  • Nullable<T> [MSDN]
  • Dictionary<TKey,TValue> [MSDN]
  • {{1}} [MSDN]
  • 以及更多...

泛型在.NET中是非常有用和普遍的,所以一定要熟悉这个概念。

答案 1 :(得分:3)

List<Book>图书清单

  • ArrayList不同,因为列表只能包含Book类型的对象(或其子类型)。
  • 它与书籍数组(book[])不同,因为List数据结构是动态调整大小并针对添加和删除项目进行优化的。

表示法List<Book>表示:类List<T>,使用Book作为泛型类型参数T。有关泛型的介绍(它们是什么,它们解决了什么问题),我推荐MSDN上的以下文章:

回答第二个问题:不,它不会继承Book。可以把它想象成一个书架:它可以包含书籍,但它本身并不是一本书:书架没有标题,也没有作者。

答案 2 :(得分:1)

这是一种generic,一种考虑对象类型的方法,可以为实现做出强类型假设。

答案 3 :(得分:0)

这称为Generic类,自.NET 2.0起已经可用

它包含Book对象列表

答案 4 :(得分:0)

它是一个通用的容器类,其元素必须是Book实例。关键词是泛型,每本C#教科书都将涵盖这一概念。

答案 5 :(得分:0)

换句话说

 List<Book> Books

将创建名为Books

的书籍对象列表