我知道关于私有字段/属性使用此关键字或下划线存在争议/意见(我会提到,我坚持使用.NET 2.0)
就个人而言,我更喜欢这个,但有时你不能使用它,例如当你需要从静态方法中引用一个全局变量时.那么,我们被迫使用下划线(假设我们只有2个选项,这个或下划线).这意味着如果我的类使用任何静态方法,我不能在整个文档中使用它.
现在,我已经阅读了naming guidelines并使用了StyleCop,我宁愿不使用下划线,但我的Resharper非常坚持使用_.
我觉得让一个类使用_并且下一个类使用它只是为了适应类混合非静态和静态方法时是不对的!关于SO的建议是保持一种实现/风格,但我不知道这是否意味着我应该忽略微软(我知道MS并不总是遵循他们自己的规则)!
有人建议用其他东西作为前缀,类似于匈牙利语,但前缀为globVariableName,其中glob表示全局.我讨厌这个想法,它太定制了,对我团队以外的任何其他开发人员都不会很明显.
所以,我的问题是,一致地定义全局变量的最佳方法是什么?因为它们是命名指南,所以我可以忽略(至少_可以一致地使用,但忽略语言创建者的建议感觉不对).
解决方法
只需在静态类中使用类名,就像使用“this”一样.示例如下:
public static class MyStatic { public static object Global; public static void SomeMethod() { var theGlobal = MyStatic.Global; } } public class MyNonStatic { public object Global; public void SomeMethod() { var theGlobal = this.Global; } }
注意:我实际上无法想到任何其他方法.