我想要实现的是说我有一个数组,我希望能够通过指向它来修改整个代码中的特定数组元素。
例如在 C++ 中我可以做到这一点
int main(){
int arr [5]= {1,2,3,4,5};
int *c = &arr[3];
cout << arr[3] <<endl;
*c = 0;
cout << arr[3]<<endl;
}
我做了一些谷歌搜索,似乎有一种方法可以通过“不安全”来做到这一点,但我真的不想走那条路。
我想我可以创建一个变量来存储索引,但实际上我正在处理稍微复杂一些的问题(列表中的列表。因此拥有两个索引变量似乎会增加代码的复杂性。)
C# 有一个数据绑定(bind)类,所以我当前正在做的是将数组元素绑定(bind)到文本框(我已隐藏),并在我想要修改特定数组元素时修改该文本框,但这也不是一个好方法解决方案(因为我有一个文本框没有用于其预期目的 - 有点误导)。
最佳答案
一个说明您希望使用的外观的 C# 示例会有所帮助。如果我明白你在问什么,像这样的简单类(class)就可以做到。不过,您所要求的似乎不是一个好主意。如果您展示了需要此功能的更大范围,那么有人可能会指出您根本不需要此类功能的更好设计。
public class ListElement<T> {
private IList<T> list;
private int index;
public ListElement(IList<T> list, int index) {
this.list = list;
this.index = index;
}
public T Value {
get {
return list[index];
}
set {
list[index] = value;
}
}
}
这个的使用看起来像
int[] arr = new int[] {1,2,3,4,5};
ListElement<int> third = new ListElement<int>(arr, 2);
Console.WriteLine(third.Value);
third.Value = 0;
Console.WriteLine(third.Value);
关于c# - 指向数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918535/