相关疑难解决方法(0)

属性与字段:需要帮助掌握属性对字段的使用

首先,我已经阅读了关于这个主题的帖子列表,并且由于我对封装和字段修饰符(private,public..ect)的了解,我不觉得我已经掌握了属性.

我学习的C#的一个主要方面是使用封装在代码中保护数据的重要性.我认为'我理解这是因为使用修饰符的能力(私人,公共,内部,受保护).然而,在了解了属性之后,我不仅理解了属性的使用,而且还理解了C#中数据保护(我理解为封装)的整体重要性/能力.

更具体地说,当我到达C#中的属性时,我读过的所有内容都是你应该尝试使用它们代替字段,因为:

1)当您直接直接访问字段时,它们允许您更改数据类型.

2)它们为数据访问增加了一定程度的保护

然而,根据我的想法,我已经了解了字段修饰符的使用#2,在我看来属性只是生成了额外的代码,除非你有一些理由改变类型(#1) - 因为你是(或多或少)创建隐藏方法来访问字段而不是直接访问.

然后可以将整个修饰符添加到属性中,这进一步使我对属性访问数据的需要的理解变得复杂.

我已经阅读了不同作者关于"属性"的一些章节,并且没有人真正解释过对属性与字段与封装(以及良好的编程方法)的良好理解.

有人能解释一下:

1)为什么我想要使用属性而不是字段(特别是当它出现时我只是添加额外的代码

2)在跟踪其他人的代码时,有关识别属性的使用以及不将它们视为简单方法(除了get; set明显)之外的任何提示吗?

3)任何关于何时使用什么的良好编程方法的一般经验法则?

感谢和抱歉这篇长篇文章 - 我不想只问一个问题100x而不解释为什么我再问它.

c# encapsulation field properties

36
推荐指数
5
解决办法
1万
查看次数

接口可以包含变量吗?

可能重复:
为什么C#接口不能包含字段?

大家好,

Jon Skeet回答了一个问题,即使用属性是由变量支持的.

但是C#中允许接口中的属性.这是否意味着C#中的接口可以包含一个变量,该属性支持的变量将如何处理?

提前致谢.

.net c# oop properties interface

35
推荐指数
3
解决办法
7万
查看次数

标签 统计

c# ×2

properties ×2

.net ×1

encapsulation ×1

field ×1

interface ×1

oop ×1