我目前正在使用.Net 2.0并且有一个接口,其泛型类型用于定义方法的返回类型.就像是
interface IExecutor<T> {
T Execute() { ... }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,实现此接口的某些类实际上不需要返回任何内容.
在Java中,您可以使用java.lang.Void来实现此目的,但经过相当多的搜索后,我发现在C#中没有相应的东西.更一般地说,我也没有找到解决这个问题的好方法.我试图找到人们如何与代表一起做这件事,但也没有发现 - 这让我相信问题是我在搜索时很糟糕:)
那么解决这个问题的最佳方法是什么?你会怎么做?
谢谢!
在我正在研究的程序的一些Python单元测试中,我们使用内存中的zipfiles进行端到端测试.在SetUp()中我们创建了一个简单的zip文件,但在某些测试中我们想要覆盖一些档案.为此,我们执行"zip.writestr(archive_name,zip.read(archive_name)+ new_content)".就像是
import zipfile
from StringIO import StringIO
def Foo():
zfile = StringIO()
zip = zipfile.ZipFile(zfile, 'a')
zip.writestr(
"foo",
"foo content")
zip.writestr(
"bar",
"bar content")
zip.writestr(
"foo",
zip.read("foo") +
"some more foo content")
print zip.read("bar")
Foo()
Run Code Online (Sandbox Code Playgroud)
问题是这在Python 2.4和2.5中运行良好,但不是 2.6.在Python 2.6中,打印行上的"BadZipfile:目录中的文件名"栏"和标题"foo"不同".
它似乎正在读取正确的文件栏,但它认为它应该是读取foo.
我不知所措.我究竟做错了什么?这不受支持吗?我尝试在网上搜索,但没有提到类似的问题.我读了zipfile文档,但找不到任何(我认为是)相关的东西,特别是因为我用文件名字符串调用read().
有任何想法吗?
先感谢您!