相关疑难解决方法(0)

了解私人制定者

我不明白是否需要拥有以C#2开头的私人制定者.

为我设置一个setter方法是让用户在该类中设置一些变量.在这样做时,我们不会将变量直接暴露给用户.相反,我们让他们通过这种公共setter方法来做到这一点.

这对我来说是使用"封装".有一些争论声称私人制定者会允许你应用封装.

我是不是通过使用公共setter方法使用封装?为什么我们需要私人制定者?

不可变类和具有私有setter的类有什么区别?

c#

82
推荐指数
5
解决办法
9万
查看次数

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

在我看过的大部分代码中(在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# ×2

.net ×1

coding-style ×1

properties ×1