c# - 是否可以在 C# 中更改对象类型

标签 c# .net object types

为了满足客户的要求,我遇到了一些问题。

我会尽量让这个例子非常简单,只是给出问题的想法并希望提出解决方案。

此时我们有一个类“Shape”,例如,shape 有一些特化,可以是正方形、三角形等。

到目前为止一切顺利,一切正常。

现在出于某种原因,我的客户想要将系统中已存在的正方形更改为三角形,但保留所有数据的形状。

这可能吗?有什么解决方法吗?

最佳答案

您不能更改对象的运行时类型。只需创建一个新三角形,复制所有相关值并丢弃正方形。如果正方形已经被许多其他对象引用,这当然会变得棘手,因为您将不得不更新所有引用。

如果替换对象不是一个选项,您可能必须想出一个可以充当任何形状的通用形状类。例如,这个类可以是一个具体形状类实例的薄包装。这使您只需用新的三角形替换包装的正方形,而外界可以保留对包装类的所有引用。

关于c# - 是否可以在 C# 中更改对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111593/

相关文章:

c# - MVC 3 - 如何实现服务层,我需要存储库吗?

c# - CopyFromScreen 返回表单后面的任何图像

c# - 如何识别将传递给 Mono.Cecil 中特定 IL 方法调用的参数

c# - 变量神秘变化的值(value)

html - 如何在Grails中显示最终的显示页面范围?

sql - symfony 原始 sql 获取 -> 结果作为对象

javascript - JS给对象赋值导致对象重复

c# - 如何从winforms获取wpf窗口实例

c# - 在 C# 中使用用户身份验证的 cURL

c# - 如何检查特定IP地址是否连接到网络