基础问题

Hello_bug 2014-12-16 09:18:24
有三个 操作类 class1,class2,class3,
每个类里面都有2个方法 fun1(entity),fun2(entity,string)
每个类方法里面的entity都是不同的,
现在想提取一个基类出来,每个操作类都去继承那个基类该怎么处理?
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajaxfeifei 2014-12-16
  • 打赏
  • 举报
回复

    public class Entity1 {
        public string Name { get; set; }
    }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        protected T _entity;
        public virtual void fun1(T entity)
        {
            _entity = entity;
        }
        public virtual void fun2(T entity, string str) { }
    }

    public class class1 : parent<Entity1>
    {
        public void TestFunc()
        {
            Console.Write(_entity.Name);
        }
        public override void fun1(Entity1 entity)
        {
            entity.Name = "";
            base.fun1(entity);
        }
    }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
ajaxfeifei 2014-12-16
  • 打赏
  • 举报
回复
引用 8 楼 Hello_bug 的回复:
[quote=引用 7 楼 lc2737 的回复:]

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
引用 7 楼 lc2737 的回复:

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
引用 7 楼 lc2737 的回复:

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
子类里面怎么用entity里面的属性?[/quote]

public class Entity1 {
        public string Name { get; set; }
    }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        protected T _entity;
        public virtual void fun1(T entity)
        {
            _entity = entity;
        }
        public virtual void fun2(T entity, string str) { }
    }

    public class class1 : parent<Entity1>
    {
        public override void fun1(Entity1 entity)
        {
            entity.Name = "";
            base.fun1(entity);
        }
    }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
Hello_bug 2014-12-16
  • 打赏
  • 举报
回复
引用 7 楼 lc2737 的回复:

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
引用 7 楼 lc2737 的回复:

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
引用 7 楼 lc2737 的回复:

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
子类里面怎么用entity里面的属性?
ajaxfeifei 2014-12-16
  • 打赏
  • 举报
回复

    public class Entity1 { }
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(T entity) { }

        public void fun2<T>(T entity, string str) { }
    }
    public class class1 : parent<Entity1> { }
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
ajaxfeifei 2014-12-16
  • 打赏
  • 举报
回复

    public class Entity1{}
    public class Entity2 { }
    public class Entity3 { }
    public class parent<T>
    {
        public void fun1<T>(Entity1 entity){}

        public void fun2<T>(Entity1 entity, string str){}
    }
    public class class1 : parent<Entity1>{}
    public class class2 : parent<Entity2> { }
    public class class3 : parent<Entity3> { }
smthgdin_020 2014-12-16
  • 打赏
  • 举报
回复
先不考虑提取,把所有东西都实现一遍,然后在看是否能够提取(重构),如果能提取要怎么提取。
Hello_bug 2014-12-16
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
public class BaseClass<T>
{
     public void Fun1<T>(T entity){}
     public void Fun2<T>(T entity,string str){}
}
那子类里面怎么写
Hello_bug 2014-12-16
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
如果参数类型都不想干,那就没有共性可言,如果参数类型都是某个类型或其子类或某个接口,可以考虑泛型或者将某个基类或接口作为参数
每个entity 我都继承了一个父类的
bdmh 2014-12-16
  • 打赏
  • 举报
回复
如果参数类型都不想干,那就没有共性可言,如果参数类型都是某个类型或其子类或某个接口,可以考虑泛型或者将某个基类或接口作为参数
  • 打赏
  • 举报
回复
public class BaseClass<T>
{
     public void Fun1<T>(T entity){}
     public void Fun2<T>(T entity,string str){}
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧