C# 集合是值类型还是引用类型?
Are C# Collections value types or reference Types?
我正在忙着学习 C#,C# 集合是值类型还是引用类型?,因为数组是引用类型,我知道字符串也是引用类型。
谢谢。
您可以创建一个值类型集合(所以 struct MyCollection<T> : IEnumerable<T>
),但它几乎没有用(因为您可以将其设置为只读,这很简单,或者您可以尝试它是可变的,但要使其 "value-type" 可复制将非常困难,因此集合的副本与原始集合是不同的实体)(请注意,它仍然几乎无用,因为如果您使用通过一个接口的值类型,通常将其装箱)。所以最后,不要 :-)
我记得的所有 .NET "stock" 集合都是引用类型。所以数组,List<>
,ArrayList
,Dictionary<,>
,...
我正在忙着学习 C#,C# 集合是值类型还是引用类型?,因为数组是引用类型,我知道字符串也是引用类型。
谢谢。
您可以创建一个值类型集合(所以 struct MyCollection<T> : IEnumerable<T>
),但它几乎没有用(因为您可以将其设置为只读,这很简单,或者您可以尝试它是可变的,但要使其 "value-type" 可复制将非常困难,因此集合的副本与原始集合是不同的实体)(请注意,它仍然几乎无用,因为如果您使用通过一个接口的值类型,通常将其装箱)。所以最后,不要 :-)
我记得的所有 .NET "stock" 集合都是引用类型。所以数组,List<>
,ArrayList
,Dictionary<,>
,...