gpt4 book ai didi

c# - 在运行时更改 C# 中字段的类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:35:45 25 4
gpt4 key购买 nike

我有一个现有的类层次结构,可以这样说:

Business
- Division
- ProjectTeam
- Employee

这些类通过反序列化实例化。

但是,现在我需要为库的特定用户公开 Employee 中的额外字段,即说这样的话:

SpecialBusiness (extends Business)
- Division
- ProjectTeam
- SpecialEmployee (extends Employee)
- Degree

问题是,我不能只创建一个扩展“Business”的类,因为我想添加的是“Employee”类。

在我看来,我有两个选择:

  1. 使用“特殊”类复制层次结构。这意味着每个“特殊”类都将包含原始类的集合和新的“特殊”类的集合。

    SpecialBusiness
    - Division AND SpecialDivision (extends Division)
    - ProjectTeam AND SpecialProjectTeam (extends ProjectTeam)
    - Employee AND SpecialEmployee (extends Employee)
    - Degree
  2. 出于反序列化目的,在运行时以某种方式将“Employee”重新键入为“SpecialEmployee”。知道我可以在代码库中将所有“Employee”对象从 SpecialBusiness 转换为“SpecialEmployee”(可能使用辅助方法使其显而易见)。

关于如何处理这个问题有什么想法吗?

最佳答案

您不能在运行时更改字段的类型。

就是说,如果您想这样做,为什么不能直接延长员工的任期? Polymorphism声明您可以将子类型的对象插入其父类(super class)型的字段中?为什么需要重写父对象?

关于c# - 在运行时更改 C# 中字段的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702543/

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