强制数组为值类型或解决方法c#
Force Array to Be Value Type or Workaround C#
我遇到了一个有趣的问题。我知道c#中的数组是引用类型。我发现我实际上需要它表现得像一个值类型。我有一个c++队列,我从一个c#应用程序中提取数据,有一个byte[]参数。提取的数据存储在该变量中,然后将该byte[]数组附加到List中。由于数组在c#中是引用,所以列表中的每一项的值都是最后提取的数据的值。我的第一个想法是对每个数据提取做一个"新",但这听起来成本很高,而且是糟糕的编程实践。有没有我遗漏的变通办法?
如果希望拥有多个不同的数组,正确的方法是简单地创建多个数组,而不是在希望拥有多个数组时重用单个数组。
创建一个类型,当你把它赋值给另一个变量时,你复制它的全部数据,这甚至不会节省你创建多个数组的努力,因为当你复制它们时,你仍然会这样做。
相关文章:
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 从 int 中剥离位时,编译器会警告一个转换,但不警告其他转换.有解决方法吗?
- 是否有解决方法可以在 c++ 中为 short 定义用户定义的文字?
- 不为 emplace() 定义构造函数的解决方法
- 删除复制构造函数的 Intel 13.1.2 中不良C++行为的解决方法
- 函数模板部分专业化-有什么解决方法吗
- 带boost的过载模糊性:可选,解决方法
- 继承构造函数和其他变量的解决方法
- C++ 解决方法:"从类型"B*"的表达式初始化类型"C*&"的引用无效"
- 对前向声明类型进行unique_ptr的解决方法
- 解决方法:'can not be used when making a shared object; recompile with -fPIC'使用Cmake。使用普通的 g++ 工作
- 解决方法:QPixmap:在GUI线程之外使用pixmap是不安全的
- CreateProcessWithTokenW 的 cmdline 参数的最大长度是否有解决方法?
- C++双精度作为模板参数的解决方法
- 在参数相关查找之前进行模板替换的任何方法(或解决方法?
- CUDA 内核"Only a single pack parameter is allowed"解决方法?
- dlsym() 解决方法返回类型
- VS2017是否有VLA(可变长度阵列)支持解决方法
- 解决方法:未定义对"class::function"的引用
- 来自 Boost 的 JSON 解析器的警告 C4512 的解决方法