![]() |
1
3
“安全”的方法是通过 ArraySegment 结构。 当然,您可以使用不安全的c#传递指向字符的指针,但是您需要担心缓冲区溢出。 顺便说一句,C#中的数组(通常)是在堆上分配的,所以正常传递它(没有ref)并不意味着复制数组——它仍然是传递的引用(只是一个新的引用)。 |
![]() |
2
2
编辑: 你不能像在C语言中那样做 安全 密码
C#数组(即。
所以你不能发送它的一个元素的引用并从那里开始迭代。 但是有一些解决方案会给你同样的味道(没有 不安全的 ): 例如:
|
![]() |
3
0
如果该方法只应从数组读取,则可以使用linq:
|
![]() |
4
0
你的困惑很常见。关键是要认识到“引用类型”和“通过引用传递”(ref键盘)是完全独立的。在这种特定情况下,由于string[]是一种引用类型(与所有数组一样),这意味着在传递对象时不会复制该对象,因此您总是引用同一个对象。 C#代码的修改版本:
|
![]() |
5
0
问题很古老,但也许答案对某人有用。
从C#7.2开始,在这种情况下可以使用更多的类型,例如。
Span
或
Memory
.
目前,如果您想使用它们,请记住添加
|
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 7 月前 |
![]() |
Geremia · 2D NumPy数组+1D数组? 8 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 8 月前 |
![]() |
Paul Williams · 迭代数组时输出有问题 8 月前 |