相关疑难解决方法(0)

字段和属性之间有什么区别?

在C#中,是什么使字段与属性不同,何时应该使用字段而不是属性?

c# field properties

1032
推荐指数
17
解决办法
42万
查看次数

我应该使用公共属性和私有字段或公共字段来获取数据吗?

在我看过的大部分代码中(在SO上,我都会在我自己的代码中使用codeproject.com),我已经看到为一个类包含的每个私有字段创建公共属性,即使它们是最多的基本类型get; set;:

private int myInt;
public int MyInt 
{
     get { return myInt; }
     set { myInt = value }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这与以下方面有何不同:

public int MyInt;
Run Code Online (Sandbox Code Playgroud)

如果我们应该使用属性而不是公共字段,为什么我们应该在这种特定情况下使用它们呢?(我不是在讨论更复杂的例子,其中getter和setter实际上做了一些特殊的事情,或者只有一个get或set(只读/写)而不是只返回/设置私有字段的值).它似乎没有添加任何额外的封装,只在IntelliSense中提供一个漂亮的图标,并放在类图中的特殊部分!

.net c# coding-style properties

55
推荐指数
4
解决办法
3万
查看次数

自动实现的属性c#

  1. 有人可以解释一下使用Auto-Implemented Properties c#背后的想法吗?

    public class Customer
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    我有动力使用私有​​字段的属性,因此我们可以确定如何访问私有字段.但在这里 - 就像从一开始就将这个领域定义为公开一样.没有?

  2. 将字段定义为"public const"或将其定义为具有get-only属性之间是否存在差异?

c#

11
推荐指数
2
解决办法
9475
查看次数

公共访问者.net

我认为它是在.net 2.0中,微软推出了一个缩写为类似的访问器

public string Name { get; set; }

但是上面的代码之间是否有任何真正的区别,并且简单地说:

public string Name;
Run Code Online (Sandbox Code Playgroud)

c#

6
推荐指数
1
解决办法
588
查看次数

公共财产定义

为对象定义属性而不是直接访问私有变量有什么好处?

代替 :

public class A

    private _x as integer = 0

    Public property X() as integer
        Get
            return _x

        End Get
        Set(ByVal value As integer)
            _x = value
        End Set
    End Property

end class
Run Code Online (Sandbox Code Playgroud)

为什么我们不能做以下事情:

public class A

    public _x as integer = 0

end class
Run Code Online (Sandbox Code Playgroud)

有什么好处?

c# variables field properties class

4
推荐指数
1
解决办法
344
查看次数

为什么不直接使用类字段?

所以我知道类和结构是数据的结构.类字段默认为私有字段和结构字段 - 公共字段.喜欢public: / int a;C++和public int a;C#

但是访问这些字段的其他方法是将它们设为私有并使用函数/方法.喜欢SetValue(int value){a = value;}和/ GetValue() { return a; }或者我甚至听说过{set; get;}C#的新酷.

为什么呢?许多人告诉我'其他人可以通过这种方式访问​​你的变量,所以让他们私有化'.我不明白,它有什么区别让它们公开,只是使用它们obj.a = 3;或让它们变得私密和干嘛obj.SetValue(3);?有人(甚至可以简要地)解释一下这些差异是什么以及如何在他们公开的时候进入这些领域?

c# c++ properties class

4
推荐指数
1
解决办法
311
查看次数

c#:拥有纯粹的公共财产有什么意义

可能重复:
我应该使用公共属性和私有字段或公共字段来获取数据吗?
财产(没有额外处理)与公共领域

在类中只有一个属性来获取和设置成员变量有什么意义?

将变量公之于众的实际差异是什么?

c# oop properties

2
推荐指数
1
解决办法
669
查看次数

类中的属性

我创建的两个属性之间有什么区别(即优势/劣势)?两者似乎都是正确的,但在类中声明属性的最佳方式(实践)是什么?

[Serializable]
public class MySample
{
   public string String1 = string.Empty;

   private string _string2 = string.Empty;

   public string String2 
        {
            get { return _string2 ; }
            set { _string2 = value; }
        }
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
99
查看次数

标签 统计

c# ×8

properties ×5

class ×2

field ×2

.net ×1

c++ ×1

coding-style ×1

oop ×1

variables ×1