我无法弄清楚为什么下面的代码返回一个Cannot resolve method Write(T)- 这对我来说似乎毫不含糊:
Run Code Online (Sandbox Code Playgroud)private static void WriteToDisk<T>(string fileName, T[] vector) { using (var stream = new FileStream(fileName, FileMode.Create)) { using (var writer = new BinaryWriter(stream)) { foreach(T v in vector) writer.Write(v); writer.Close(); } } }
我想定义一个通用的二进制写方法,可以处理例如int[],long[]或的向量double[].
cdh*_*wie 10
Write()将在编译时确定要调用的重载,而不是在运行时. BinaryWriter需要Write(object)重载(或Write<T>(T)通用重载)才能允许以这种方式调用方法.此错误(正确)表示它既没有.
您将需要编写自己的包装器方法,该方法接受object(或通常类型化的参数)并检查其类型以确定BinaryWriter.Write()要调用的重载.
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |