代码之家  ›  专栏  ›  技术社区  ›  Clément

.Net中的接口

  •  0
  • Clément  · 技术社区  · 14 年前

    我想使用相同的代码复制文件到FTP服务器,并通过USB。我已经编写了一些代码,现在使用 System.IO 命名空间。

    为了尽量减少代码重复,我列出了系统IO命名空间,我正在考虑设计一个接口,公开类似的函数,然后设计两个类,一个用于FTP文件操作,一个用于本地操作。

    不过,我对接口有几个问题:

    1. 可以设计我的界面 File.* Directory.* 是否保留组织(以便在接口中声明的例程与在IO命名空间中声明的例程遵循相同的层次结构)?
    2. 对于本地操作,是否有一种方法可以将函数从IO命名空间映射到相应的接口函数(编写类似于 Sub IO.File.Delete Implements IOInterface.File_Delete )?
    3. Dim IOHandler As IOInterface ,假设 IOInterface IOHandler = New LocalIOHandler IOHandler = New FTPIOHandler ,假设 LocalIOHandler FTPIOHandler 我的两个类是否实现了 IO接口 ?

    谢谢!
    CFP公司。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Rune Grimstad    14 年前

    不能更改现有类以使其实现自己的接口。但是,您可以设计自己的接口,在其中方法返回已经存在的类,就像系统IO命名空间。

    public class MyFileClass : IOInterface
    {
      public void DeleteFile(string fileName) 
      {
         new FileInfo(fileName).Delete();
      }
    }
    

        2
  •  1
  •   Rune FS    14 年前

    第一个我帮不了你,我只是不明白你对函数hierachi的意思,但对另外两个。不,没有语法,您必须实现一个将调用转发给该方法的方法。例如(我已经好几年没写VB了)

    Sub open(path as string)
      Begin
        Return File.Open path
      End
    

    对于第三种情况,您可以说这是使用代码不需要知道具体类型的接口的一点(不是唯一的一点)