举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#接口的作用 C# 接口

c#接口的作用 C# 接口

2023-02-27 22:18 C#教程

c#接口的作用 C# 接口

c#接口的作用

C#接口是一种特殊的类型,它可以被其他类实现。接口定义了一个类必须实现的方法,属性和事件。接口不能包含字段或静态成员,但可以包含属性、方法、事件和索引。

C#接口的主要作用是定义一个标准,让其他类遵循这个标准来实现特定的功能。例如,如果你想要创建一个数据库应用程序,你可以使用C#接口来定义数据库访问的标准方法,然后让其他类去实现这些方法。这样就能够保证所有的数据库访问都遵循相同的标准,而不会因为不同的开发人员而导致不一致。

C# 接口还有助于代码重用。例如,如果你想要创建一个文本处理工具,你可以使用 C# 接口来定义文本处理所需要的方法(例如读写文本文件、分割字符串、格式化文本内容等)。然后你就可以在其他项目中重用这些代码而无需重复开发。

此外,C# 接口还有助于隔离代码依赖性。例如,如果你想要创建一个日志工具(将日志信息写入文本文件或数据库中),你就可以使用 C# 接口来隔离日志工具代码和文本文件操作代码或数据库代理代 码之间的依赖性。这样就能够保证既能正常使用既能正常卸载既能正常卸载既能正常卸载既能正常卸载既能正常卸载既能正常卸载既能正常卸 载既能正常卸轄

public interface ILogger 
{ 
    void Log(string message); 
} 
public class FileLogger : ILogger 
{ 
    public void Log(string message) 
    { 
        // Write log to file. 
    } 
} 

C# 接口

C#接口

接口提供了一个规范而不是其成员的实现。

接口作为定义和实现之间的联系。

接口成员都是隐式抽象的。

类或结构可以实现多个接口。

接口声明就像一个类声明,但它不为其成员提供实现。

这些成员将由实现接口的类和结构实现。

接口只能包含方法,属性,事件和索引器。

例子

下面是在System.Collections中定义的IEnumerator接口的定义:

public interface IEnumerator { 
    bool MoveNext(); 
    object Current { get; } 
    void Reset(); 
} 

接口成员总是隐式公开的,不能声明访问修饰符。

实现接口意味着为其所有成员提供公共实现:

class Countdown : IEnumerator { 
    int count = 11; 
    public bool MoveNext () { 
       return count-- > 0 ; 
    } 
    public object Current { 
       get { 
          return count; 
       } 
    } 
    public void Reset() { 
       throw new NotSupportedException(); 
    } 
} 

您可以将对象隐式转换为它实现的任何接口。例如:

IEnumerator e = new Countdown(); 
while (e.MoveNext()) 
Console.Write (e.Current);

扩展接口

接口可以从其他接口派生。

例如:

public interface IUndoable { 
   void Undo(); 
} 

public interface IRedoable : IUndoable { 
   void Redo(); 
} 

IRedoable “继承" IUndoable 的所有成员。

显式接口实现

实现多个接口有时可能导致成员方法之间的冲突。

我们可以通过显式实现一个接口成员来解决这种冲突。

考虑下面的例子:

interface Interface1 { 
   void iMethod(); 
} 
interface Interface2 { 
   int iMethod(); 
} 

public class Widget : Interface1, Interface2 { 
   public void iMethod () {
        Console.WriteLine ("Widget"s implementation of Interface1.iMethod"); 
   }
   int Interface2.iMethod(){ 
       Console.WriteLine ("Widget"s implementation of Interface2.iMethod"); 
       return 42;
   } 
} 

这使得两种方法在一个类中共存。调用显式实现的成员的唯一方法是转换到其接口:

Widget w = new Widget(); 
w.iMethod(); // Widget"s implementation of Interface1.iMethod 
((Interface1)w).iMethod(); // Widget"s implementation of Interface1.iMethod 
((Interface2)w).iMethod(); // Widget"s implementation of Interface2.iMethod 

实质上实现接口成员

隐式实现的接口成员默认是封装的。

它必须在基类中标记为virtualor或abstract以便被覆盖。

例如:

public interface IUndoable { 
   void Undo(); 
} 

public class DrawPad : IUndoable { 
    public virtual void Undo() {
        Console.WriteLine ("DrawPad.Undo"); 
    } 
} 

public class RichDrawPad : DrawPad { 
    public override void Undo() {
        Console.WriteLine ("RichDrawPad.Undo"); 
    } 
} 
阅读全文
以上是编程学为你收集整理的c#接口的作用 C# 接口全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部