为什么 IPEndPoint 是可变的?有不变的版本吗?
Why is IPEndPoint mutable? Is there an immutable version?
根据 the documenation on MSDN,IPEndPoint
可以设置其 Address
和 Port
属性。
为什么这个 class 设计成可变的?对于 reasons 和 String
等 class 一样,它似乎应该是不可变的。
是否有此 class 的不可变版本更适合传递线程、事件处理程序等?
没有内置的 class 的不可变版本。
答案的主观部分:使此 class 可变是 .NET Framework 中的设计缺陷。 15 年前创建它时,不可变性通常会使 API 设计更好这一点并不为人所知。 BCL 有很多不应该存在的可变性地方。
根据 the documenation on MSDN,IPEndPoint
可以设置其 Address
和 Port
属性。
为什么这个 class 设计成可变的?对于 reasons 和 String
等 class 一样,它似乎应该是不可变的。
是否有此 class 的不可变版本更适合传递线程、事件处理程序等?
没有内置的 class 的不可变版本。
答案的主观部分:使此 class 可变是 .NET Framework 中的设计缺陷。 15 年前创建它时,不可变性通常会使 API 设计更好这一点并不为人所知。 BCL 有很多不应该存在的可变性地方。