我想使用相同的代码将文件复制到FTP服务器,并通过USB。我已经编写了一些代码,现在使用System.IO
命名空间中的函数。
为了最大限度地减少代码重复,我已经从system.IO命名空间列出了我需要的功能,我正在考虑设计一个公开类似功能的接口,然后是两个类,一个用于FTP文件操作,一个用于当地的。
我有几个关于接口的问题:
File.*
和Directory.*
组织(以便在界面中声明的例程遵循与IO命名空间相同的层次结构)?Sub IO.File.Delete Implements IOInterface.File_Delete
的内容)?Dim IOHandler As IOInterface
的内容,假设IOInterface
是我的界面名称吗?我可以同时写IOHandler = New LocalIOHandler
和IOHandler = New FTPIOHandler
,假设LocalIOHandler
和FTPIOHandler
是我实现IOInterface
的两个类吗?谢谢!
CFP。
答案 0 :(得分:1)
您无法更改现有类,以便它实现您自己的接口。但是,您可以设计自己的接口,其中方法返回已存在的类 - 如System.IO命名空间中的类。
您还可以实现自己的包装System.IO类的类,以便IOInterface.Delete映射到FileInfo.Delete(请原谅C#语法,我的VB生锈了):
public class MyFileClass : IOInterface
{
public void DeleteFile(string fileName)
{
new FileInfo(fileName).Delete();
}
}
回应#3: 是。 IOInterface类型的变量可以包含实现该接口的任何类型。如果需要,您也可以稍后将其转换为特定类型。
答案 1 :(得分:1)
我无法帮助你完成第一个我根本没有得到你的意思功能hierachi而是另外两个。没有没有语法可以实现将Call转发给方法的方法。例如。 (假鳕鱼我多年没写过VB)
Sub open(path as string)
Begin
Return File.Open path
End
对于你的第3个你可以说消费代码不需要知道具体类型的接口点(它不是唯一的点)