【发布时间】:2020-07-27 18:28:09
【问题描述】:
所以我正在使用“Murach's C# 2015”教科书学习 C#。在第 13 章第 411 页,有一个这样的代码:
public class ProductList
{
private List<Product> products;
public ProductList()
{
products = new List<Product>();
}
所以第一行“public class ProductList”声明了一个类
第二行“私有列表产品”;声明一个类变量(即:“字段”)......在这种情况下是一个列表......我不明白这个?到目前为止,我所学到的只是一个列表是这样初始化的:
private List<Product> products = new List<Product>();
谁能给我解释一下?这就是列表的一贯做法吗?或者这是短手?还有其他方法吗?
我理解下一段代码是构造函数,即:
public ProductList()
{
products = new List<Product>();
}
我在这里看到了我习惯于在列表中看到的“新”关键字。
【问题讨论】:
-
您的示例(声明和初始化列表)实际上与声明成员然后在构造函数中初始化它的广告相同。构造函数之外的所有初始化代码都聚集在一起并在任何构造函数运行之前运行(一个类可能有许多构造函数,一个实例由其中一个构造)。简而言之,别担心——你的想法是对的
-
声明一个对象变量和为该变量创建一个实例是两件不同的事情。一个通知编译器,另一个准备使用。为了方便,我们经常将它们混为一谈,但它们是不同的操作。您的第一个代码块只需分两步完成。
标签: c# list class constructor field