本篇文章给大家谈谈vs不实现接口成员,以及c不实现接口成员对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享vs不实现接口成员的知识,其中也会对c不实现接口成员进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
asp.net vs2008 不实现接口成员System.Web.IHttpHandler.IsReusable
原因
vs不实现接口成员:在实现IHttpHandler接口时少实现了一个Isreusable属性。在实现IHttpHandler接口的类中
vs不实现接口成员,加上
protected bool IsReusable
{
get { return true;}
}
貌似是这样,
vs不实现接口成员你先试试
C#中没有找到适合的方法来重写问题
重写是指重写基类
vs不实现接口成员的方法
vs不实现接口成员,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override。
格式:
基类中:
public virtual void myMethod()
{
}
子类中:
public override void myMethod()
{
}
重写以后,用基类对象和子类对象访问myMethod()方法,结果都是访问在子类中重新定义的方法,基类的方法相当于被覆盖掉了。如下例子:
using System;
class a
{
int x=1;
public virtual void PrintFields()
{
Console.WriteLine("x={0}",x);
}
}
class b:a
{
int y=2;
public override void PrintFields()
{
Console.WriteLine("y={0}",y);
}
}
class c
{
public static void Main()
{
b me=new b();
me.PrintFields();
a y=new b();
y.PrintFields();
}
}
以上代码运行结果:
y=2
y=2
如果把上面代码中的override去掉
那么运行的时候是不会有错误,但是会有个警告,因为编译器不知道你是要重写该方法,还是隐藏该方法。如果重写那么就加override,如果是隐藏那么就加new,其实不加new也可以运行,但是我们一般还是加上去。
如果是加了new,那么运行结果是:
y=2
x=1
vs2010 总是提示不支持此接口
是不兼容的问题。。win7 都是这样 的。。。我就是因为这个原因,才把重装系统,弄了个xp 的。。。可能,你还得等一段时间,到时候在网上看看,能不能下载一个插件,来解决这个不兼容问题。或者,你在你电脑上装个虚拟机吧。。。在虚拟机中,也可以解决软件不兼容问题。。。
C#中接口成员的显示实现和隐式实现有什么区别?
隐式实现和显示实现
vs不实现接口成员的例子
隐式地实现接口成员
创建一个接口,Chinese,包含一个成员 Speak;我们创建一个类Speaker,实现接口Chinese
//隐藏式实现例子
public interface Chinese
{
string Speak();
}public class Speaker : Chinese
{
public string Speak()
{
return "中文";
}
}这个就是隐式实现
显式地实现接口成员 -- 创建一个仅通过该接口调用并且特定于该接口的类成员。这是使用接口名称和一个句点命名该类成员来实现的。
创建一个接口,English,包含一个成员 Speak;让我们的类Speaker来实现接口English//显式实现例子
public interface English
{
string Speak();
}public class Speaker : English
{
string English.Speak()
{
return "English";
}
} 隐式实现和显示实现的区别
1. 语法层面的区别
l 隐式方式Speaker的成员(Speak)实现有而且必须有自己的访问修饰符(public),显示实现方式Speaker的成员(Speak)不能有任何的访问修饰符。
l 显示实现方式Speaker使用接口名称和一个句点命名该类成员(Speak)来实现的:English.Speak()
2. Client的使用者层面
隐式实现的客户端调用,注意类的声明,可以用接口声明,也可以用实现类 Speaker声明。调用者都可以得到调用实例化对象的行为Speak;
class Program
{
static void Main(string[] args)
{
Chinese c = new Speaker();
c.Speak(); Speaker s = new Speaker();
s.Speak();
}
} 显式实现的客户端调用,注意类的声明,只可以用接口声明,调用者才可以可以得到调用实例化对象的行为Speak; Code
class Program
{
static void Main(string[] args)
{
English c = new Speaker();
c.Speak();
//下面写法将引起编译错误错误“PetShop.Speaker”不包含“Speak”的定义
// Speaker s = new Speaker();
// s.Speak();
}
}隐示实现对象声明为接口和类都可以访问到其行为, 显示实现只有声明为接口可以访问。
选择隐式实现还是显示实现
隐式和显式接口实现的关键区别显然并不在于方法声明,而是在于从类外部的可访问性。以下是一些基本的设计原则,可以利用它们来帮助自己选择显式还是隐式实现。
1. 业务语义的考虑?
考虑接口Chinese和English对于成员的Speak的业务需求,Speaker要实现这两个接口,如果采用隐式实现,语法没有问题,业务满足了吗?
例如:
Code
//服务端:
public class Speaker : English, Chinese
{
public string Speak()
{
return "English";
}
}//调用端:
class Program
{
static void Main(string[] args)
{
Chinese c = new Speaker();
c.Speak();
}
}呵呵,这完全可以编译通过,但是放在实际的业务场景去考虑,这不是很幽默吗?这个时候就考虑使用一个显式的实现显式实现
//服务端:
public class Speaker:English,Chinese
{
string English.Speak()
{
return "English";
}
string Chinese.Speak()
{
return "中文";
}
}//调用端:
class Program
{
string English.Speak()
{
return "English";
} string Chinese.Speak()
{
return "中文";
}
}2. 实现类是否准备让调用者独立使用?
虽然显示接口实现提供了更好的封装性,对调用者使用可以强制其进行接口声明,但是如果
vs不实现接口成员你准备让用户可以单独使用你这个类的功能,请提供隐式实现。
C#中的接口VS Java中的接口
Java中并没有在语言层面提供隐式和显式接口的实现,那么对于我们例子的中场景如何解决?当然有办法,只是没有C#优雅,还是Java故意在语言层面不提供这样的解决方案,难道认为他破坏了类的单一职责原则?我也在想这个问题,是不是一个Speaker只实现Chinese或者English之一那才是比较好的设计?
C#中接口总结
接口描述的是可属于任何类或结构的一组相关功能。接口可由方法、属性、事件、索引器或这四种成员类型的任意组合构成。接口不能包含字段。接口成员一定是公共的,而且是默认的,不要画蛇添足。
当类或结构继承接口时,意味着该类或结构为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。但是,如果基类实现接口,派生类将继承该实现。
如果一个类机继承类并实现接口,一定要吧类写在符号:后面的第一个位置。
c#为什么一个类继承了接口就必须要实现接口里面的所有内容??有生动例子最好了
先说下什么是接口:接口是对行为(功能)的封装。所以接口是行为(功能)的定义
vs不实现接口成员,但是这仅仅是定义,并没有实现。一个类去继承一个接口,代表这个类需要实现接口定义的行为(功能)。比如A和B两家手机制造商,A造出来的手机只能打电话,而B造出来的不仅能打电话,还能发短信。然后A就也要能发短信。发短信就是已中行为,是一个功能,A想要实现发短信,就是想继承发短信这个接口,然后就是在内部实现发短信的接口。所以
vs不实现接口成员你要先明白,是A需要发短信这个功能,才会去有意识的去继承发短信的接口,然后就必须去实现发短信的接口,否则,你广告里说你能发短信,但是你没实现,就是不能发,回头就要被消费者起诉了
vs不实现接口成员!如果你不实现接口的定义,那干嘛去继承这个接口呢。
如何在vs中查找实现接口的类,快键方式?
接口的实现交给了它的实现者,一般按F12只是跳转到接口处。所以可以用查找功能,在解决方案查找就可以了。或者对接口处右键:使用查找所有引用;
快键方式如下:
1、用鼠标左击点一下该接口,然后按F12;
2、鼠标放到这个接口上,shift+f12;
关于vs不实现接口成员和c不实现接口成员的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
vs不实现接口成员的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c不实现接口成员、vs不实现接口成员的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~