小编dow*_*rme的帖子

分配给ostream后如何关闭ofstream?

我可以

std::ostream& out = condition ? std::cout : std::ofstream(filename);
Run Code Online (Sandbox Code Playgroud)

但如果出现这种情况我该如何关闭out = std::ofstream(filename)

c++ ofstream ostream

5
推荐指数
2
解决办法
1979
查看次数

通用扩展方法类型推断

我有一个扩展方法,可以将数值类型 A 的数组转换为数值类型 B 的数组

\n
public static T2[] ConvertTo<T1, T2>(this T1[] buffer)\n{\n    var bufferNumBytes = buffer.Length * Marshal.SizeOf(default(T1));\n    var targetElementNumBytes = Marshal.SizeOf(default(T2));\n    if (bufferNumBytes % targetElementNumBytes != 0)\n    {\n        throw new ArgumentException($"Array must have multiple of {targetElementNumBytes} bytes, has {bufferNumBytes} bytes instead", nameof(buffer));\n    }\n    var res = new T2[bufferNumBytes / targetElementNumBytes];\n    Buffer.BlockCopy(buffer, 0, res, 0, bufferNumBytes);\n    return res;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我可以这样称呼它

\n
    var b = new ushort[] { 1, 256 };\n    var us = b.ConvertTo<ushort, byte>();\n\n    Assert.That(us[0], Is.EqualTo(1));\n    Assert.That(us[1], Is.EqualTo(0));\n …
Run Code Online (Sandbox Code Playgroud)

c# generics extension-methods

1
推荐指数
1
解决办法
269
查看次数

标签 统计

c# ×1

c++ ×1

extension-methods ×1

generics ×1

ofstream ×1

ostream ×1