我是C#编程的新手,我目前在代码中使用了很多静态变量。以下是一个例子:
class Program
{
public int I//Can be used to access the variable i anywhere from the code as it is public
{
get { return i; }
set { i = value; }
}
static int i = 0; // A private static integer
static void Main(string[] args)
{
i = 1;// The main function is changing this integer
}
void reset() {
i = 0;// another function is changing the value of integer i
}
}
class otherclass
{
void otherreset()
{
Program program = new Program();
program.I = 1;// another function in another class is changing the value of integer i(indirectly)
}
}
我确实找到了这个关于using static variables in C#的帖子,但我想知道,从安全角度来看这是一个标准做法。我担心在整个程序执行过程中变量驻留在内存中的相同位置。
在各种功能之间共享变量是否还有其他更好的方法。
答案 0 :(得分:2)
static int i = 0; // A private static integer
这里你声明了一个静态成员。到目前为止一切都很好。
static void Main(string[] args)
{
int i = 1;// The main function is changing this integer
}
不,它没有。 int i
表示您声明了一个名为i
的 new 局部变量。
void reset() {
int i = 0;// another function is changing the value of integer i
}
不,它没有。 int i
表示您声明了一个名为i
的 new 局部变量。
从安全角度来看,我想知道这是否是标准做法。
不,它不是,也不是,它与安全无关。您应该避免尽可能使用静态成员。我认为为什么的实际原因目前与您目前的知识和理解水平相差太远。只需将其作为最佳实践。
我担心在整个程序执行过程中变量驻留在内存中的相同位置。
好吧,一个在内存位置之间“传播”的变量不是一个好主意:-)变量非常简单地放在内存中命名的位置。
通常还有其他更好的方法可以在各种函数之间共享变量。
是的,首先要了解功能参数,成员字段和属性。使用您可用的任何初学C#书,或在线搜索。