美文网首页
C#之属性

C#之属性

作者: 困卡 | 来源:发表于2017-04-02 23:23 被阅读0次

属性:get { //读属性代码 } set { //写属性代码 }

public class Person
{
private string name;
public string Name
{
   get{return  name;}
   set{ name=value;}
}
}

属性结合了字段和方法的多个方面。 对于对象的用户,属性显示为字段,访问该属性需要相同的语法。 对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。
当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。
属性可以忽略get或set访问器,但是不能两个都忽略.
不具有set访问器的属性被视为只读属性。
不具有 get访问器的属性被视为只写属性。

属性(property)
-充分体现了对象的封装性:不直接操作类的数据内容,而是通过访问器进行访问,即借助于get和set对属性的值进行读写;另一方面还可以对数据的访问属性进行控制(当然也可以通过对普通域加readonly关键字来实现。
-设计原则:属性封装了对域的操作。把要访问的域设为private,通过属性中的get和set操作对域进行设置或访问。
-不能把属性作为引用类型或输出参数来进行传递。
-get方法没有参数;set方法有一个隐含的参数value。除了使用了abstract修饰符的抽象属性,每个访问器的执行体中只有分号“;”外,其他的所有属性的get访问器都通过return来读取属性的值,set访问器都通过value来设置属性的值。
-采用间接方式来访问对象的属性(间接调用get、set方法):对象.属性 = 值(调用set),变量 = 对象.属性(调用get)。

用途

1.它们可在允许更改前验证数据;
2.当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。

注意点

属性可以只写get块或set块。
如果只写get不写set,那么就不能再外面赋值了。 如果只写set不写get,那么就不能在外界读取了。

可以给set或者get设置访问修饰符,来限制调用范围。

//属性的简写方式
public class Date
    {
        public int Month{get;set;} // 编译器会自动加上一个month的字段。
    }

相关文章

  • C#之属性

    属性:get { //读属性代码 } set { //写属性代码 } 属性结合了字段和方法的多个方面。 对于对象的...

  • C#之属性

    参考:http://www.runoob.com/csharp/csharp-property.html

  • Xamarin for Objective-C开发者

    属性 Objective-C C# Get Set Objective-C C# 泛型 Objective-C C...

  • 巧用宏命令,改造BCB——在BCB中实现类C#属性声明语法

    引子 余好程序,喜BCB(Borland C++ Builder)。一日见C#之属性声明,顿觉清爽。其后偶有所启,...

  • 【XLua】015-Lua访问C#:静态属性,方法

    访问C#静态属性,方法 1、Lua脚本: 2、C#脚本: 运行结果: 小技巧: 如果需要经常访问的类,可以先用局部...

  • C# 搭建一个简单的WebApi项目

    WebApi相关文章: C# 搭建一个简单的Web API项目 C# WebApi 路由配置 c# WebApi之...

  • Unity 学习,C#基础学习

    包含,C#字符串,枚举,集合,数组以及类,属性的设置 C#基本数据类型代码一:字符串!using UnityEng...

  • C#窗体

    C#设置窗体属性 属性可以分为: 布局 窗口样式 行为 焦点 可访问性 设计 数据 外观 杂项 布局 窗口样式 行...

  • C#抽象属性

    抽象属性: 抽象类可拥有抽象属性,这些属性在派生类中被实现。 public abstract class Pers...

  • C#属性使用 =>

    在c#中经常使用Lambda表达式,在Lambda表达式中=>是很常见的,但是最近在看代码时发现一个另类的写法,就...

网友评论

      本文标题:C#之属性

      本文链接:https://www.haomeiwen.com/subject/nrbwottx.html