gpt4 book ai didi

C# 泛型不识别类型

转载 作者:太空狗 更新时间:2023-10-30 00:01:39 29 4
gpt4 key购买 nike

我不明白为什么以下代码会返回 Cannot resolve method Write(T) - 这对我来说似乎很明确:

    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[]

最佳答案

哪个重载了Write()调用将在编译时确定,而不是在运行时。 BinaryWriter需要 Write(object)重载(或 Write<T>(T) 通用重载)以允许以这种方式调用方法。此错误(正确地)表明它两者都没有。

您需要编写自己的包装器方法来接受 object (或一般类型的参数)并检查其类型以确定哪个 BinaryWriter.Write()重载调用。

关于C# 泛型不识别类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14130379/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com