Skip to main content
 首页 » 编程设计

c#之我应该在 ctor 或私有(private)静态方法中填充集合吗

2024年02月03日25zlslch

如果我有一个空的集合对象但需要填充并且将被一个类(比如 Foo 类)使用,那么最好在构造函数中进行填充吗?

类似于:

List<string> strings = new List<string(); 
strings.Add("sjsjhsj"); 
 // So on... 

或者它应该在静态私有(private)构造函数中吗?包含类的状态没有改变,所以这可以是静态的,对吧?

顺便说一句,如果我写 this.Name = name;或者:

john.Name = name; 
// Instance method passing in john as a Person object. 

是否已知这些都在改变状态,因此不应该是静态的?还是只有实例?

如果我需要一个我希望能够在不重新编译的情况下更改其内容的集合,我应该使用 txt 文件或 xml 作为源。用于集合时哪个更快? txt 文件将使用 ReadAllLines();并且 XML 将使用 NodeNavigator(不确定确切的方法/对象名称)。

谢谢

请您参考如下方法:

首先,静态构造函数不能是公共(public)的/私有(private)的。它们只是存在。

如果您的集合的同一个实例将在拥有类的所有实例之间共享,那么它可以是静态的。

静态并不意味着它不会改变状态。它仍然可以改变。不同之处在于静态字段在该类的所有实例之间共享,因此需要协调该字段上的可变操作。如果该类的所有实例总是使用相同的数据,请将其设为静态。

文本文件还是 xml 文件对您来说更快取决于数据。