我无法理解这段代码:
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
课程?
答案 0 :(得分:9)
List<Book>
[MSDN] 是Book
个Book
个对象的集合。它不会从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泛型是:
泛型在.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
的书籍对象列表