接口问题....高手们帮忙

ufostop 2008-07-22 07:56:13
现在有a,b,c,d四个类
public class a
{
public bool add(a ob)
{
//
}
}
public class b
{
public bool add(b ob)
{
//
}
}
public class c
{
public bool add(c ob)
{
//
}
public string getcode(c ob)
{
//
}
}
public class d
{
public bool add(d ob)
{
//
}
public string getcode(d ob)
{
//
}
}


应该如何定义接口?大家帮忙解决一下!
...全文
135 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanhanlin 2008-07-23
  • 打赏
  • 举报
回复
public interface aaa
{
public bool function();
}
这样??
ufostop 2008-07-23
  • 打赏
  • 举报
回复
能不能举个例子,谢了
kkkrnm 2008-07-23
  • 打赏
  • 举报
回复
你可以写一个接口.然后写实现类,将4个方法写在一个实现类中
ufostop 2008-07-23
  • 打赏
  • 举报
回复
没有人能帮忙解决一下?
ViewStates 2008-07-23
  • 打赏
  • 举报
回复
关注,泛型
wwei466 2008-07-23
  • 打赏
  • 举报
回复
建议你把方法分离,另写一个方法类,可以使静态的,再调用。
你的这种想法还真没见过。
ufostop 2008-07-23
  • 打赏
  • 举报
回复
我就是不想用object,才问大家的.......
wwei466 2008-07-23
  • 打赏
  • 举报
回复
传递类型用object
ufostop 2008-07-23
  • 打赏
  • 举报
回复
把他们添加到数据库中.
vwxyzh 2008-07-23
  • 打赏
  • 举报
回复
泛型是一种方案,不过,我觉得不久的将来,lz就会为泛型而带来的类型耦合而烦恼
建议lz还是用object,松耦合有时候比类型安全更重要
另外,lz别忘了主动抛出异常这种选择

public interface x
{
bool add(object ob);
bool cangetcode{get;}//类似IList.IsReadOnly
string getcode(object ob);
}

public class a : x
{
public bool add(a ob)
{
//
}
bool x.add(object ob)
{
if (!(ob is a))
throw new ArgumentException("ob");
return add((a)ob);
}
bool x.cangetcode{get{return false;}}
string x.getcode(object ob)
{
throw new NotSupportException();
}
}

ufostop 2008-07-23
  • 打赏
  • 举报
回复
算了,感谢大家了!结帖了
fuadam 2008-07-23
  • 打赏
  • 举报
回复
楼主,关键的问题是你在Add这个方法里面,要具体操作a,b,c,d这些对象的属性吗?拼sql语句来进行数据库操作?

如果是的话,你应该再在接口中定义一个方法,比如GetSql() ,这样你就可以用我说的2个接口了
white_dos 2008-07-23
  • 打赏
  • 举报
回复
看a,b,c,d能不能实现继承,然后用基类传弟参数,到方法内部再转为要处理的对象
ufostop 2008-07-23
  • 打赏
  • 举报
回复
......
兄弟,我不是请教定义interface的格式是什么的,我是请教对应我那样的类,应该怎么定义interface!
再说,你写的接口有错误,接口可以用public 来修饰?......
fuadam 2008-07-22
  • 打赏
  • 举报
回复
你传入具体a,b,c,d后要进行什么操作
ufostop 2008-07-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fuadam 的回复:]
interface I1
{
bool add(I1 obj);
}
interface I2
{
string getcode(I2 obj);
}

a,b,c,d都继承I1,c,d还继承I2
[/Quote]
楼上兄弟,提示错误,a不能实现add(I1 obj)
我传的参数是a,b,c,d不是I1,
fuadam 2008-07-22
  • 打赏
  • 举报
回复
interface I1
{
bool add(I1 obj);
}
interface I2
{
string getcode(I2 obj);
}

a,b,c,d都继承I1,c,d还继承I2
ufostop 2008-07-22
  • 打赏
  • 举报
回复
可是a和b根本就没有getcode这个方法呀
ChengKing 2008-07-22
  • 打赏
  • 举报
回复
public interface aaa
{
bool add(aaa a);
string getcode(aaa a);
}

a,b,c,c四个类都继承aaa.
ufostop 2008-07-22
  • 打赏
  • 举报
回复
自己顶!

110,534

社区成员

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

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

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