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

如何声明变量,以便每个类(* .cs)都可以访问其内容,而无需实例引用?



哔哔one
浏览 870回答 3
3回答

一只甜甜圈

C#中没有全局变量这样的东西。期。如果需要,可以拥有静态成员:public static class MyStaticValues{   public static bool MyStaticBool {get;set;}}

当年话下

首先检查您是否确实需要全局变量,而不是在不考虑软件体系结构的情况下公然使用它。假设它通过了测试。根据使用情况,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.}其他类的用法(在同一名称空间中)// Readbool areWeAlive = Globals.Expired;// Write// past deadlineGlobals.Expired = true;
打开App,查看更多内容
随时随地看视频慕课网APP