c# - 使用父属性实例化继承对象类

标签 c#

我正在使用一个 SDK 方法,该方法返回该 SDK 的 native 模型。

在我的代码中,我想向我的基类添加一些额外的属性。

示例:

public class BaseClass {
    public string Prop1 {get; set;}
} 

public class ChildClass : BaseClass {
   public string Prop2 { get; set; }
}


BaseeClass baseClassObject = SDK.Method1();

ChildClass child = new ChildClass(); <- Populate this with baseClassOjbect properties. 

继承是最好的/最有效的吗?如果是这样,如何使用基类的属性实例化子对象?

我可以使用 BaseClass 的属性创建一个没有继承的新类,然后创建一些额外的属性(不使用继承),但我只是想知道是否有“更好”使用 C# 来实现这一点?

最佳答案

考虑将基础对象传递给子对象并复制所需的属性

public class BaseClass {
    public string Prop1 {get; set;}
} 

public class ChildClass : BaseClass {

    public ChildClass() : base() {}

    public ChildClass(BaseClass baseClassObject) : base() {
        this.Prop1 = baseClassObject.Prop1;
    }

    public string Prop2 { get; set; }
}

现在子类可以这样初始化

BaseeClass baseClassObject = SDK.Method1();

ChildClass child = new ChildClass(baseClassObject) {
                        Prop2 = "Some value"
                   };

并使用 baseClassOjbect 属性进行填充。

关于c# - 使用父属性实例化继承对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49809000/

相关文章:

c# - 服务实例将保持挂起状态,直到在出现错误异常类型初始值设定项后以管理方式恢复或终止

c# - 从文件夹读取文本文件时,给定路径不支持错误消息

c# - Resharper 警告 Unity3D 调用的未使用方法

c# - Windows.Storage.KnownFolders.MusicLibrary 路径返回空

c# - 在以下情况下使用指令和 SQLite 有什么问题?我得到了 ObjectDisposedException,但就在这里?

c# - Blazor WASM : Unhandled exception Object of type T has a property matching the name, 但它没有应用 [ParameterAttribute]

c# - 将 SQL 参数集合传递给函数

c# - 带有 < 和 > 的正则表达式

C# In() 方法? (像 SQL)

c# - 用于处理短链接冲突的最快 C# 实现