这样可行是因为,函数签名的后面直接带分号结尾。限于两种情况:
1:纯虚函数,没有方法内容的;
2:外部函数,Extern。
于是我也这样写了一个,却报错说不实现接口,不知其因。
接口部分:
public interface IManageProvider
{
void AddCurrent(IManageUser user);
IManageUser Current();
void EmptyCurrent();
bool IsOverdue();
}
继承的类:
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent(IManageUser user);
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
11 个解决方案
#1
IManageUser存在么?既然继承了,ManageProvider 中的EmptyCurrent等 应该有方法体;
#2
#3
你说的可能是 抽象类的情况吧
public interface A
{
void T1();
}
public abstract class B : A
{
public abstract void T1();
}
public class C : B
{
public override void T1() { Console.WriteLine(111); }
}
#4
#5
版主, IManageUser Current(),另外文件有实现。
#6
我都写成这样了,还不行,提示要声明主体
一、接口
public interface IManageProvider
{
void AddCurrent();
void EmptyCurrent();
bool IsOverdue();
}
二、继承类
public class ManageProvider : IManageProvider
{
void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
一、接口
public interface IManageProvider
{
void AddCurrent();
void EmptyCurrent();
bool IsOverdue();
}
二、继承类
public class ManageProvider : IManageProvider
{
void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
#7
上面敲错了,是这样的:
二、继承类
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
[/color]
二、继承类
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
[/color]
#8
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent() {}
public virtual void EmptyCurrent() {}
public virtual bool IsOverdue() {}
}
既然你不打算实现接口方法,那么为何要声明实现接口?
注意: : IManageProvider 不是继承!
{
public virtual void AddCurrent() {}
public virtual void EmptyCurrent() {}
public virtual bool IsOverdue() {}
}
既然你不打算实现接口方法,那么为何要声明实现接口?
注意: : IManageProvider 不是继承!
#9
额,不是我不实现,而是我在一个dll中看到的,觉得奇怪,于是摘下来测试下。
他这里面也末见实现,为何不报错呢?
他这里面也末见实现,为何不报错呢?
#10
不是没有实现,只是人家编译成dll了啊。你看不到具体代码而已。右上角
从元数据看到吗
#11
明白了,老大,因为我没有在这个文件看到实现,又不见报错,才有疑惑的
#1
IManageUser存在么?既然继承了,ManageProvider 中的EmptyCurrent等 应该有方法体;
#2
#3
你说的可能是 抽象类的情况吧
public interface A
{
void T1();
}
public abstract class B : A
{
public abstract void T1();
}
public class C : B
{
public override void T1() { Console.WriteLine(111); }
}
#4
#5
版主, IManageUser Current(),另外文件有实现。
#6
我都写成这样了,还不行,提示要声明主体
一、接口
public interface IManageProvider
{
void AddCurrent();
void EmptyCurrent();
bool IsOverdue();
}
二、继承类
public class ManageProvider : IManageProvider
{
void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
一、接口
public interface IManageProvider
{
void AddCurrent();
void EmptyCurrent();
bool IsOverdue();
}
二、继承类
public class ManageProvider : IManageProvider
{
void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
#7
上面敲错了,是这样的:
二、继承类
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
[/color]
二、继承类
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent();
public virtual void EmptyCurrent();
public virtual bool IsOverdue();
}
[/color]
#8
public class ManageProvider : IManageProvider
{
public virtual void AddCurrent() {}
public virtual void EmptyCurrent() {}
public virtual bool IsOverdue() {}
}
既然你不打算实现接口方法,那么为何要声明实现接口?
注意: : IManageProvider 不是继承!
{
public virtual void AddCurrent() {}
public virtual void EmptyCurrent() {}
public virtual bool IsOverdue() {}
}
既然你不打算实现接口方法,那么为何要声明实现接口?
注意: : IManageProvider 不是继承!
#9
额,不是我不实现,而是我在一个dll中看到的,觉得奇怪,于是摘下来测试下。
他这里面也末见实现,为何不报错呢?
他这里面也末见实现,为何不报错呢?
#10
不是没有实现,只是人家编译成dll了啊。你看不到具体代码而已。右上角
从元数据看到吗
#11
明白了,老大,因为我没有在这个文件看到实现,又不见报错,才有疑惑的