gpt4 book ai didi

c# - .Net 中不可变类型的示例

转载 作者:太空狗 更新时间:2023-10-29 17:39:04 28 4
gpt4 key购买 nike

我们知道不变性的概念,但除了

之外,我们还需要了解一些不可变类型
  • 字符串
  • 日期时间

还有吗?

最佳答案

框架类库中的不可变类型列表如下。 (随意扩展它!)

System.…

  • 所有原始值类型:(注意:not all value types are immutable !)
    • ByteSByte
    • Int16UInt16
    • Int32UInt32
    • Int64UInt64
    • IntPtr
    • Single
    • Double
  • Decimal
  • 编译器创建的所有匿名类型(在 C# 中为 new { ... },在 VB.NET 中为 New With { ... }) (错误的原因有两个:这些类型不在 FCL 中,并且显然 VB.NET 类型是可变的。)
  • 所有枚举类型( enum , Enum )
  • 所有代表类型。 (请参阅 this answer 。虽然委托(delegate)似乎是可变的(因为您可以执行类似 obj.PropertyChanged += callback 的操作,但实际上是 obj.PropertyChanged 引用被变异为指向新构造的委托(delegate)实例;原始委托(delegate)实例保持不变。)
  • DateTime , TimeSpan (在 this answer 中提到)DateTimeOffset
  • DBNull
  • Guid
  • Nullable<T>
  • String
  • Tuple<…> .NET 4 引入的类型 (在 this answer 中提到)
  • Uri
  • Version
  • Void

System.Linq.…

  • Lookup<TKey, TElement>

关于c# - .Net 中不可变类型的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721466/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com