【问题标题】:about Variable name member prefixes [duplicate]关于变量名成员前缀[重复]
【发布时间】:2012-01-09 04:35:26
【问题描述】:

可能重复:
Why should (or shouldn't) I prefix fields with 'm_' in C#?

我正在阅读 CLEAN CODE

有一段关于成员的前缀。

作者建议不再使用 m_。 如:

public class Part{
  private String m_dsc;
  void setName(String name){
    m_dsc - name;
  }
}

应该是:

public class Part{
  String description;
  void setDescription(String description){
    this.description = description'
  }
}

我的问题是,为什么我们之前使用 m_?

而且,本书以 Java 为例。 这个建议对 c# 有好处吗?那么c++呢

谢谢!

【问题讨论】:

  • 谢谢你们两个。非常有用的信息。谢谢

标签: c# java c++ coding-style


【解决方案1】:

m_ 是匈牙利符号的变体 - http://en.wikipedia.org/wiki/Hungarian_notation

使用与否是个人/团队调用,但不使用字段前缀的建议是 C# 的长期建议 - http://msdn.microsoft.com/en-us/library/ms229012.aspx

【讨论】:

    【解决方案2】:

    m_ 前缀便于区分成员变量与局部变量或参数。

    这对面向对象语言中的类有效(所以,是的,C#、C++ 等)

    现在,随着 IDE 的进步,m_ 前缀似乎不再那么有用了(如果您想知道变量是否是类成员,则可以轻松快速地进行定义.)

    【讨论】:

    • 在 C# 或 Java 等 OOP 语言中,绝对不需要在其前面加上 m__。如果需要将其区分为成员变量,则应使用this 关键字。
    猜你喜欢
    • 2014-05-09
    • 2015-01-29
    • 2013-02-01
    • 2014-04-16
    • 2010-11-09
    • 2021-05-14
    • 2015-08-16
    • 2012-10-03
    • 2011-12-20
    相关资源
    最近更新 更多