为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中使用全局变量?

如何在C#中使用全局变量?

C#
哔哔one 2019-10-09 16:47:07
如何声明变量,以便每个类(* .cs)都可以访问其内容,而无需实例引用?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

C#中没有全局变量这样的东西。期。


如果需要,可以拥有静态成员:


public static class MyStaticValues

{

   public static bool MyStaticBool {get;set;}

}


查看完整回答
反对 回复 2019-10-09
?
当年话下

TA贡献1890条经验 获得超9个赞

首先检查您是否确实需要全局变量,而不是在不考虑软件体系结构的情况下公然使用它。


假设它通过了测试。根据使用情况,Globals可能很难用竞争条件和许多其他“坏事”进行调试,最好从准备处理此类坏事的角度着手进行处理。所以,


将所有此类Global变量包装到一个static类中(出于可管理性)。

使用属性而不是字段(=“变量”)。这样,您便拥有了一些机制来解决将来与并发写入Globals的任何问题。

此类的基本大纲为:


public class Globals

{

    private static bool _expired;

    public static bool Expired 

    {

        get

        {

            // Reads are usually simple

            return _expired;

        }

        set

        {

            // You can add logic here for race conditions,

            // or other measurements

            _expired = value;

        }

    }

    // Perhaps extend this to have Read-Modify-Write static methods

    // for data integrity during concurrency? Situational.

}

其他类的用法(在同一名称空间中)


// Read

bool areWeAlive = Globals.Expired;


// Write

// past deadline

Globals.Expired = true;


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 869 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信