class c:a{void a.b(){}}to implement interface methods explicitly, you can not use modifiers like public, seehttp://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_13_4_1.asp?frame=true
It is a compile-time error for an explicit interface member implementation to include access modifiers, and it is a compile-time error to include the modifiers abstract, virtual, override, or static.
It is a compile-time error for an explicit interface member implementation to include access modifiers, and it is a compile-time error to include the modifiers abstract, virtual, override, or static.
解决方案 »
- LinQ操作XML如何获得Element的Value后加‘,’号
- C#中如何实现这样的效果
- 关于OnTextChange事件,如何获得事件发生时TextBox里改动的文字?
- 把用.net2005做好的网站上传到网上空间里面需要在本地建虚拟目录么?
- 程序界面问题
- C#程序里的“选项”怎么编程,就是退出时能保存设置,下次启动还能取得上次的设置
- 求一个客户端的做法。
- C# WPF 视频处理问题
- 无法进入onpaint
- 如何让WinForm下的DevExpress控件TextEdit显示为一条横线?
- 怎么读取USB口数据
- 一个绑定DataSet的DataGrid,我想按DataGrid某一列的值查找某一行(例如"Name"),
但是在继承接口类中,必须实现接口中的方法.
以下应该可以.
class c:a{void a.b(){ ...............}}
{
public void b(){}}
即可
interface a { void b();}接口实现1:
class c:a
{
void a.b()
{}
}接口实现2:
class c:a
{
public void b()
{}
}实现规则:
1. 你用 a.b() 来实现,则不能前缀 public;
2. 你要前缀 public,就只能用 b(),而不能用a.b();
为什么要这样约定,请看下面定义的类:interface a { void b();}class c:a
{
void a.b()
{
MessageBox.Show("实现接口的b()方法");
} public b()
{
MessageBox.Show("类自己的b()方法");
}
}class m
{
a p1=new c();
c p2=new c(); p1.b(); // display 实现接口的b()方法
p2.b(); // display 类自己的b()方法}不知是否为楼主阐述明白?
e.g.
namespace n1{
public interface a{
void m1(); }
public class b: n1.a
{
void n1.m1(){..}
} public class c:n1.b
{
protected override void m1(){..} // 不能实现
}}
你可以显示的实现
class c:a
{
void a.b()
{//....}
}
显示实现调用的时候要注意:
c cc = new c();
a ia = cc;
ia.b();//调用也可以隐式的实现
class c:a
{
public void b()
{//...}
}
namespace n1{
public interface a{
void m1(); }
public class b: n1.a
{
void /*>>>*/virtual n1.m1(){..}
} public class c:n1.b
{
protected override void m1(){..} // 不能实现
}}
你用base.m1()可以吗?
了接口,
和函数从写从借口集成的类必须实现 接口中的函数,但要从写的话
要在基础类 virtual 的函数才可以 override