微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的命名约定 – 全局变量

我知道关于私有字段/属性使用此关键字或下划线存在争议/意见(我会提到,我坚持使用.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;
    }
}

注意:我实际上无法想到任何其他方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐