C#:创建子类的实例

迪彭·罗伊(Dipon Roy)

我有一个像

abstract class A <TEntity, TLog>
{
    public abstract TLog Get(TEntity entity);
}

和一些子类,如

class B : A<Branch, BranchLog>
{
    public override BranchLog Get(Branch entity)
    {
        return null;
    }
}

现在我可以根据其对基类的通用实现来获取子类的实例,

class Mapper
{
    public TLog GetMapped<TEntity, TLog>(TEntity entity)
    {

        /*if called with GetMapped<Branch, BranchLog>, make instance of B b = new B()*/
        /*returng b.Get(entity)*/
        return null;
    }
}

或以任何方式而不是反思

斯里拉姆·萨克蒂维

再添加一个通用参数来说明类型。用约束新的通用参数,new()以便我们可以对其进行更新,A<TEntity, TLog>并确保只能A传递或其子类的实例

class Mapper
{
    public TLog GetMapped<TType, TEntity, TLog>(TEntity entity) where TType : A<TEntity, TLog>, new()
    {
        TType instance = new TType();
        return instance.Get(entity);
    }
}

然后称它为

Mapper mapper = new Mapper();
mapper.GetMapped<B, Branch, BranchLog>(branch);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过C#中的子类创建特定的类实例

来自分类Dev

实例化子类C#时更新基类属性

来自分类Dev

从XAML内部创建C#类的实例

来自分类Dev

C#创建静态类的全局实例

来自分类Dev

在C#中为“ this”创建实例变量

来自分类Dev

动态创建C#类的实例

来自分类Dev

C#创建某事的实例对象

来自分类Dev

C#反射,从文本创建实例

来自分类Dev

使用反射 C# 创建 List 的实例

来自分类Dev

如何从超类创建子类的实例的数组

来自分类Dev

C#子类或接口?

来自分类Dev

C#子类或接口?

来自分类Dev

C#遍历子类

来自分类Dev

如何在C#中使用子类的实例访问父类的方法

来自分类Dev

实例的创建模式取决于多个子类实例

来自分类Dev

IronPython在创建实例时设置属性值(如c#)

来自分类Dev

C#创建一个东西的实例对象

来自分类Dev

引用由其他函数C#创建的实例的函数

来自分类Dev

如何在C#文件中创建List <T>实例

来自分类Dev

使用C#使用VNet创建Azure容器实例

来自分类Dev

如何通过C#创建Azure API管理实例?

来自分类Dev

C#创建类和派生类的实例

来自分类Dev

c#从实例访问创建类变量

来自分类Dev

C#文件为null,在创建实例时崩溃。

来自分类Dev

C#如何通过类属性创建类实例

来自分类Dev

在 C# 和 SpecFlow 中创建 RemoteWebDriver 实例的问题

来自分类Dev

C# 从类型 FullName 创建一个类的实例

来自分类Dev

如何在 C# 中创建异常实例?

来自分类Dev

C#子类最佳实践