扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Net Framework接口的实现方法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
10余年的芦淞网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整芦淞建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“芦淞网站设计”,“芦淞网站推广”以来,每个客户项目都认真落实执行。
.Net Framework可以我们提供一个部署WEB应用程序的平台。它的出现就是为了帮助开发人员提供良好的编程环境,以助开发人员提高自己的程序开发效率。我们见天将会了解到的是.Net Framework接口的相关操作方法。
接口继承:类型继承的是接口中的方法签名,而非方法实现。
当一个类型继承了一个接口时,它只是在允诺提供其中的方法实现:如果没有提供,则该类型将被认为是抽象的,从而不可能被实例化。
.Net Framework接口仅仅是一个包含着一组虚方法的抽象类型,其中每一个方法都有他们的名称、参数和返回值类型。但接口方法不包括任何实现。
接口也可以定义事件、无参属性以及含参属性,因为它们都只不过是映射到方法上的语法缩写而已。
如果在一个类型内实现接口方法的时候忽略了virtual关键字,那么该方法将被认为是一个密封的虚方法,继承了该实现类型的其他类型将不可以再重写该方法。
当一个类型“继承”某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中“继承”而来的所有方法。
实现了多个接口的类型允许我们将它的对象看作这些接口中的任何一个。
.Net Framework接口举例:
1.使用接口改变已装箱值类型中的字段
struct Point
{
public int x,y;
public void Change(int x,int y)
{
this.x=x; this.y=y;
}
public override String ToString()
{
return String.Format("({0},{1})",x,y);
}
}
class Program
{
static void Main(string[] args)
{
Point p=new Point();
pp.x=p.y=1;
p.Change(2,2);
Console.Write(p); //实现System.
Iformattable接口,调用ToString方法Object o=p; //o指向装箱后的Point对象,显示(2,2)
Console.Write(o);
((Point) o).Change(3,3);
Console.Write(o); //拆箱,将已装箱Point
中的字段拷贝到线程堆栈上的一个临时 Point中,
这个临时Point上的字段值改为3,但已装箱的Point
对象不受这种改变的影响,显示(2,2)}
}
问题出现了,C#不允许我们改变已装箱值类型中的字段,下面利用.Net Framework接口做一个修订:
interface IChangeBoxedPoint
{
void Change(Int32 x, Int32 y);
}
struct Point : IChangeBoxedPoint
{
public Int32 x, y;
public void Change(Int32 x, Int32 y)
{
this.x = x; this.y = y;
}
/**//*.*/
}
class App
{
static void Main()
{
Point p=new Point();
object o=new object();
/**//*.*/
((IChangeBoxedPoint)p).Change(4, 4);
//p装箱,改变已装箱对象,但当Change返回后,
已装箱对象立即被垃圾回收Console.WriteLine(p); //(2,2)
((IChangeBoxedPoint)o).Change(5, 5);
//这里没有装箱的必要,于是改变已装箱对象Point的值
Console.WriteLine(o); //(5,5)
C#中没有接口方法做不到这一点}
}
2.显示.Net Framework接口成员的实现
public interface IComparable { Int32 CompareTo(object other); } struct SomeValueType:IComparable { private Int32 x; public SomeValueType(Int32 x) { this.x = x; } public Int32 CompareTo(SomeValueType other) { return (x - other.x); } Int32 IComparable.CompareTo(object other) { return CompareTo((SomeValueType)other); } } public static void Main() { SomeValueType v1 = new SomeValueType(1); SomeValueType v2 = new SomeValueType(2); Int32 n; n= v1.CompareTo(v2); //不进行任何装箱 n = ((IComparable)v1).CompareTo(v2); //v2强制装箱 }
注意三点:
a.CompareTo方法的名字前加了接口限定名IComparable.CompareTo,它告诉CLR只有在使用一个IComparable对象引用时方法才被调用
b.IComparable.CompareTo的实现是将other转型为SomeValueType后,通过调用CompareTo方法来完成的
c.IComparable.CompareTo方法前没有public或protected访问修饰符
显示.Net Framework接口方法的好处:类型安全,减少装箱操作。
看完上述内容,你们掌握Net Framework接口的实现方法有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流