首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >List<Questions>中的"Questions“与List<T>中的"T”有何关系?

List<Questions>中的"Questions“与List<T>中的"T”有何关系?
EN

Stack Overflow用户
提问于 2016-07-19 11:24:42
回答 4查看 93关注 0票数 0

我正在开发一个处理列表的应用程序。我有两个脚本;一个处理特定类;第二个处理应用程序中的其他所有内容。这是一个真与假的游戏/应用程序,我正在学习通过在线教程来制作它。

第一个脚本是一个System.Serializable脚本,它只包含一个字符串和一个布尔值。这里的字符串是问题,布尔值验证问题。游戏控制器的主脚本在类之外创建了一个数组,它还包含一个未回答问题的列表,该列表将在问题被提出后定期更新。

我不太理解的代码行是

代码语言:javascript
复制
private static List<Questions> UnansweredQuestions;

其中“问题”是包含问题和布尔值的类。

<Questions>到底提供了什么功能。我知道List<T>中的T指的是列表中元素的类型;通常是字符串或整型。在这里,T作为类是如何定义的?假设问题类包含一个字符串和一个布尔值,这是否意味着创建的列表是一个字典?

EN

回答 4

Stack Overflow用户

发布于 2016-07-19 11:32:16

不,List<Question>不是字典。它是包含Question%s的List

List<T>是泛型,这意味着它可以接受任何类型。编译器本质上从List获取代码,并用Question替换T的所有实例,就好像它是专门作为Question类型的列表编写的一样。

在其核心,List将元素存储在一个数组中,即private T[] _items。当数组空间不足时,就会调整数组的大小。

票数 2
EN

Stack Overflow用户

发布于 2016-07-19 11:30:56

让我们把这个分解一下

代码语言:javascript
复制
private static List<Questions> UnansweredQuestions;

访问修饰符private意味着UnansweredQuestions只能在定义它的类的范围内可见。

关键字static意味着您不需要类的实例。相同的UnansweredQuestions对类的所有实例以及类中的其他静态属性/方法都是可见的。

服务的确切功能是什么。我知道列表中的T指的是列表中元素的类型;通常是string或int。

List<T>表示稍后命名的类型列表。当您编写List<Questions>时,您可以命名该类型。你告诉编译器你想要一个问题对象的列表。

假设问题类包含一个字符串和一个布尔值,这是否意味着创建的列表是一个字典?

不,它真的是一个列表。如果列表中至少有一个对象,则可以执行以下操作

代码语言:javascript
复制
Questions firstQuestion = UnansweredQuestions[0];
if (firstQuestion.Answered == false) 
{
    Console.WriteLine(firstQuestion.Text);
}

这里假设您的布尔值被称为已回答,您的问题文本被称为文本。

票数 1
EN

Stack Overflow用户

发布于 2016-07-19 11:37:35

参考:https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

可以把它想象成多个T,类似于Array<T>。T可以是任何类型: int、字符串、问题类等。例如:

代码语言:javascript
复制
Question question1 = new Question(); // only 1 question

List<Question> questions = new List<Question>(2);
questions.Add(new Question());  // 1st question added
questions.Add(new Question());  // 2nd question added

// access the second question by:
Question secondQuestion = questions[1];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38449086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档