1

可能重复:
C# 中的字段和属性有什么区别?
C# .NET 3.5+ 中属性和字段的区别

前段时间,我继承了一个 C# Web 应用程序,其中大多数可能是字段的类成员以以下两种方式之一定义为属性:

private Guid id;
public Guid Id
{
  get { return id; }
  set { id = value; }
}

public int someValue{ get; set; }

也就是说,getter/setter 除了将值传送到私有字段之外,不做任何事情。在这些情况下,将这些成员构建为属性与字段是否有优势[或理由]?反之亦然?

通过将它们更改为字段,我是否会违反任何潜规则或最佳实践?是否存在显着的性能差异 - 例如,someValue以一种或另一种方式递增 N 个对象的列表?(我目前的理解是,字段访问必然不那么复杂[和高效]。)

4

1 回答 1

0

它主要是一个 OOP(面向对象编程)概念:封装您可以在此处查看简要说明;

关于封装的维基百科条目

一种可能的用途是,例如,当尝试分配一个值时,调用一个函数来验证这个新值。例如:

private Guid id;
public Guid Id
{
    get { return id; }
    set
    { 
        if (checkValue(value)==true)
        {
            id = value;
        } 
    }
}
于 2013-02-01T17:24:21.873 回答