我正在为C#中的第一个小项目制作一个text-based adventure game
。为了让我的愿景发挥作用,我需要一些可以在任何功能中访问的数组。游戏只包含一个类。并且需要能够在任何函数中更改数组。
答案 0 :(得分:1)
你的班级应该是这样的:
class Something {
int[] array; //global array, replace type of course
void function1() {
array = new int[10]; //let say you declare it here that will be 10 integers in size
}
void function2() {
array[0] = 12; //assing value at index 0 to 12.
}
}
这样,您可以在两个函数中访问数组。但是,你必须小心全局的东西,因为你可以快速覆盖一些东西。
答案 1 :(得分:0)
问题在于C#并不真正包含像C ++这样的全局变量,每个变量都绑定到一个范围,只有类才真正是全局的。考虑到这一点,您可以通过执行与此类似的操作来创建“全局”变量:
public static class myGlobalArray
{
public static int[] thisIsMyGlobalArray { get; set; }
}
但是,通过研究实现此方法的其他方法可以更好地服务,以免混乱全局命名空间。我建议阅读面向对象的设计并学习为什么C#不能真正让你创建全局变量。