C#中全局变量的使用

作者: dreamfly 分类: c# 发布时间: 2020-03-31 11:22

全局变量

顾名思义,全局变量就是可以在整个作用域都可以访问的变量,比如有时候我们需要在多个函数中都访问一个变量,这个时候如果通过函数进行传递的话会非常的麻烦,这个时候我们就可以使用全局变量。

C#全局变量

C#为了安全性,代码的简洁性,没有提供全局变量,不过我们可以使用静态类来实现全局变量的功能

 public static class common
 {
    public static int currentNum { get; set; }
 }

我们通过定义一个静态类,并且声明一个静态变量,我们就可以像全局变量一样使用它。

例如: 我们可以在任意函数中对它进行获取和设置。

common.currentNum = 20;

int num = common.currentNum;

static 变量 vs 全局变量

static变量只在自身文件起作用,而全局变量在导出的时候,可以被其它文件中的函数使用。

static int a;
int b;

extern int b;

b可以被其它源文件使用。

静态变量在定义它们的模块的作用域内是局部的,但生命是贯穿整个程序的。说一个函数内部的静态变量不能从该函数外部调用(因为它不在范围内),但是它是活动的并且存在于内存中。下次(在同一程序中)进入此函数时,将访问相同的内存块,现在将保留变量旧值,并且这次不会像该函数中的其他变量(自动变量)一样为该变量分配新的内存。因此,基本上,变量在整个程序中都保留。同样,如果在全局空间(例如文件开头)中定义了静态变量,则
只能在该文件(文件作用域)中访问此变量。

另一方面,全局变量必须全局定义,在整个程序中都存在(生命是持久的),范围也在整个程序中。这意味着可以从任何函数,程序的任何文件访问此类变量。

因此,如果您有一个全局变量并将您的文件作为库进行分发,并且希望其他人不要访问您的全局变量,则可以通过仅在关键字前缀上添加前缀来使其变为静态(当然,如果您的其他文件中不需要相同的变量) )。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论
  • Neeheri

    2022年3月29日 20:47

    Vyovze https://oscialipop.com – viagra vs cialis acheter cialis 20mg ligne Dfofks Cialis cialis generique 20mg His contemporary and fellow wanderer around Europe was Heinrich Cornelius Agrippa von Nettesheim usually known as Cornelius Agrippa. Bhnsmo https://oscialipop.com – Cialis

发表评论

您的电子邮箱地址不会被公开。