Zhou-Y 2015-07-01 03:07 采纳率: 50%
浏览 2162
已采纳

C#封装字段问题:两者的区别

(1) private int a;

    public int A
    {
        get { return a; }
        set { a = value; }
    }

    (2)  public int a { get; set; }

这两者分别什么意思?有什么区别?

  • 写回答

6条回答 默认 最新

  • 刚小刚小刚 2015-07-01 03:20
    关注

    从表面上没啥区别,当你访问这个类时,
    public int A
    {
    get { return a; }
    set { a = value; }
    }
    只能通过类.A

    public int a { get; set; }
    通过类.a即可
    public string a { get; set; }
    和公有字段没多大区别了,没啥意义,建议用第一种方法。但是从面向对象的角度来讲,公开的是方法,而不是字段。而且微软也推荐:所有的字段都设置为私有字段,如果要使用它们,则把它们封装成属性。对于这样简单的set或get,编译器会自动进行inline处理,没有函数进出栈的性能损失。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog