C#中的属性————只谈属性

Posted 捡贝壳的孩子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的属性————只谈属性相关的知识,希望对你有一定的参考价值。

废话少说直接一剑封喉--属性是对私有字段的保护(其实是对私有字段引用的另外一种变相公开化),属性在没有任何操作的时候是无法看出其优势来,上例子

// Field used by property.
private int myInt;
// Property.
public int MyIntProp
 {
    get
          {
           return myInt;
           }
set
         {
            myInt = value;
          }
}

这个属性就是直接访问myInt,他是私有的如果外部访问的话得通过公共的属性public int MyIntProp,有人说了,为什么这么麻烦,回答有两部分;一:因为这个myInt是私有的,是这个类的,不想被别的类任意更改

二 当然你既然定义了这个字段,哪肯定是要被使用的,但是我们希望使用这个是有条件的,也就是不是谁都可以更改的。这时候就显现出来属性的强大来了,上例子,只上SET例子

set
{
if (value >= 0 && value <= 10)
myInt = value;
}

这个就是在属性中设置了限制,也就是属性的真正意义,

说在最后的,微软基于统一的考虑,所有的属性都是这么设置的,所以就有了myInt = value; 我自己的理解(纯粹自己瞎理解)这个属性也是方法的一部分,方法就是提供给外部使用的,只是他的名字叫属性罢了

以上是关于C#中的属性————只谈属性的主要内容,如果未能解决你的问题,请参考以下文章

C# .NET中DataGridView 的所有属性?

C# 中的数组属性语法

c#中的布尔属性

本机 C++ 中的类 C# 属性?

将属性本身传递给 C# 中的参数

如何从 c# 中的 aws cognito 获取用户属性