有一段代码:1个抽象类,1个接口,1个实现类。大家看看有什么问题?是否能编译通过?为什么?
-----------------------------
using System;namespace Sample
{
/// <summary>
/// DAO接口
/// </summary>
public interface IProjectDao
{
/// <summary>
/// 向Project表中插入记录
/// </summary>
void Insert();
} /// <summary>
/// DAO基类
/// </summary>
public abstract class BaseDAO
{
public void DoSomething()
{
}
} /// <summary>
/// DAO子类,实现DAO接口。
/// </summary>
public class B : BaseDAO, IProjectDao
{
void IProjectDao.Insert()
{
} public void OtherMethod()
{
this.Insert();
}
}
}
-----------------------------
using System;namespace Sample
{
/// <summary>
/// DAO接口
/// </summary>
public interface IProjectDao
{
/// <summary>
/// 向Project表中插入记录
/// </summary>
void Insert();
} /// <summary>
/// DAO基类
/// </summary>
public abstract class BaseDAO
{
public void DoSomething()
{
}
} /// <summary>
/// DAO子类,实现DAO接口。
/// </summary>
public class B : BaseDAO, IProjectDao
{
void IProjectDao.Insert()
{
} public void OtherMethod()
{
this.Insert();
}
}
}
解决方案 »
- 向窗口无句柄按钮发送点击消息
- stream 怎么转成 struct对象
- 关于C#类成员可以赋初始值,那一章书说明了?没看到过啊?就见书上用过。
- “ADO.Net 实体数据模型”和Access数据库
- enter 键怎么使用 (c#问题)
- 关于窗体中图片拉伸的问题
- 送分快来抢:Biztalk2006对开发软件项目或企业信息化有哪些实在的好处?
- c#中怎样实现字符全角半角转换
- 我新建的WinForm应用程序编译成.dll文件,每次编译总提示我说*.dll正在使用?急!!!!!!!!!!!
- SoundPlayer不能同时播放两个声音,以前有人问过的
- webservice上传文件问题
- .net自带的水晶报表怎么没有打印预览功能?
void IProjectDao.Insert()
{
}
/// DAO子类,实现DAO接口。
/// </summary>
public class B : BaseDAO ,IProjectDao
{ public void OtherMethod()
{
this.Insert();
} public void Insert()
{
// TODO: 添加 B.Insert 实现
} }
这样就可以了
public class B:IProjectDao
{
}
public class B : BaseDAO ,IProjectDao
{ public void OtherMethod()
{
this.Insert();
} public void Insert()
{
// TODO: 添加 B.Insert 实现
} }这样可以,呵呵
{
}接口不能这样实现!改成:public void Insert(){}应该没有 问题!
void IProjectDao.Insert()
{
}
这样实现不会错的啊。
void IProjectDao.Insert()
{
}
这样实现不会错的啊。
------------------------------------
这样是不错,但在另一个方法里用 this 引用它就是你的不对了 :)
MSDN中的解释如下:
---------------------------
实现接口的类可以显式实现该接口的成员。当显式实现某成员时,不能通过类实例访问该成员,而只能通过该接口的实例访问该成员。