System.Collections.Generic vs System.Collections? System.Collections.Generic是.NET Framework中的一个命名空间,它包含了一些泛型集合类,如List、Dictionary等。这些泛型集合类允许我们在编译时进行类型检查,并提供了更高效的性能和更好的类型安全性。 System.Collections是另一个命名空间,它包含了一些非泛型的集合类,如ArrayList、Hashtable等。这些非泛型集合类在编译时不进行类型

10 浏览
0 Comments

System.Collections.Generic vs System.Collections? System.Collections.Generic是.NET Framework中的一个命名空间,它包含了一些泛型集合类,如List、Dictionary等。这些泛型集合类允许我们在编译时进行类型检查,并提供了更高效的性能和更好的类型安全性。 System.Collections是另一个命名空间,它包含了一些非泛型的集合类,如ArrayList、Hashtable等。这些非泛型集合类在编译时不进行类型

我在几个地方看到过,应该使用System.Collections.Generic命名空间中的通用集合类,而不是System.Collections命名空间中的类(如ArrayList)。我不明白为什么它更好,因为它们都是集合类。

0
0 Comments

在上述内容中,提到了使用泛型集合类型可以对集合进行强类型约束。如果我们使用ArrayList来存储狗的实例,那么需要在取出第一个元素时进行类型转换。但是,由于ArrayList不是泛型集合类型,所以我们需要手动进行类型转换:

ArrayList a = new ArrayList();
a.Add(new Dog());
Dog d = (Dog)a[0];

然而,编译器也允许进行错误的类型转换:

Cat c = (Cat)a[0];

而泛型集合类型则可以避免这种情况的发生:

List a = new List();
a.Add(new Dog());
Dog d = a[0];

可以看到,我们不再需要进行类型转换,编译器已经能够理解列表中只能包含狗的实例。此外,如果我们尝试进行错误的类型转换,编译器会直接报错:

Cat c = a[0];

因此,泛型集合类型能够避免装箱和拆箱操作,还能避免因为错误的类型转换导致的运行时错误。对于程序员和用户来说,类型安全是一种福音。所以,尽可能多地使用泛型集合类型,只有在必要的情况下才使用非泛型集合类型。

通过上述内容,我们可以得出以下结论:

- 泛型集合类型能够提供类型安全,避免错误的类型转换。

- 非泛型集合类型需要进行手动的类型转换。

- 泛型集合类型能够减少装箱和拆箱操作。

- 使用泛型集合类型能够提高代码的可读性和可维护性。

因此,我们应该尽可能地使用泛型集合类型,只有在必要的情况下才考虑使用非泛型集合类型。

0