【发布时间】:2012-11-02 12:18:36
【问题描述】:
我希望能够在不直接引用它们的情况下为列表对象赋值:
伪例子:
List<int> intList = new List<int> { 0 };
???? intPointer = ref intlist[0];
*intPointer = 1; // I know * isn't possible here, but it is what I'd like to do
Console.WriteLine(intList[0]);
它会输出1。
我认为这是不可能的,但我只是想确保我没有遗漏任何东西。
另外,我不是在寻找使用 unsafe 的示例,我很好奇这在托管代码中是否可行。
【问题讨论】:
-
“不直接引用它们”是什么意思?
-
我想通过另一个变量知道
list[0]里面有什么 -
所以您想要引用单个数组元素?请参阅 C# 中的 reference vs value types。 C# 中的引用类型(任何
class的实例)总是通过引用传递(类似于 在 C 中传递指针)。另一方面,值类型在传递时总是复制。因此,对于值类型(如int、float、struct和类似的),这是不可能的。但是,如果您将它们设为引用类型的属性,那么您将能够获得引用。
标签: c#