3 回答
TA贡献1836条经验 获得超5个赞
C#中没有全局变量这样的东西。期。
如果需要,可以拥有静态成员:
public static class MyStaticValues
{
public static bool MyStaticBool {get;set;}
}
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;
- 3 回答
- 0 关注
- 869 浏览
添加回答
举报