第三章 . 如何使用C#属性

1.Private访问修饰符   访问修饰符可以用来修饰类成员字段和方法,每个访问修饰符只能为紧随其后的成员指定特定的访问权限

如果将字段或方法声明为public 就表示其他类可以访问这个字段或方法

如果为private那么该字段或方法只能在本类中使用,其他类不能访问  故对该内容有保护权限,但可以借助第三方对该内容修改

示例如下:借助带参数的声明为public的方法来传入参数进而对私有字段进行修改

定义一个dog类 姓名声明为private  然后定义一个public的方法为Setname来更改dog类中的姓名

在Main方法中传入参数

2.this关键字

在面向对象编程语言中,this关键字是指当前对象本身,使用this关键字可以解决成员变量和局部变量的冲突问题

3.C#中的属性

    1.用方法保证数据安全

    示例如下:在dog类中定义一个SetAge()方法来对传入的数据进行判断,避免不合逻辑的修改

在main方法中的的代码:

2.用属性实现字段封装

  01.C#中的属性

  在C#中字段通常是私有的,如果要访问类中的字段,需要通过get和set访问器实现,这种结合了字段和方法的实现方式我们称之为属性。

get访问器用来返回相应的私有字段的值

set访问器用来设定相应的私有字段的值  相当于无返回值得方法,它使用一个隐含的输入参数value,党对属性赋值时,将会调用set访问器,并将新的参数值赋予   对应的字段

示例如下:dog类中的代码:

Main方法中的代码如下:

02.属性的数据类型

上图中用蓝线圈起来的便是一个属性

定义类中的一个属性时,属性的数据类型必须与它所访问的字段类型一致

注意:属性的类型可以是一个类或一个数组

03.属性的访问类型

属性可以约束数据访问外,还可以设置读、写属性来限定他的访问类型,属性的访问类型可以分为一下三种:

只读属性:只包含set访问器

只写属性:只包含get访问器

读写属性:包含get和set访问器

04.在编码中如何快速地创建属性

在一个类中,将该字段设置为私有,选中该字段ctrl+R+E(封装字段的快捷键),然后回车会车。即可

注意:在C#中

001.为类的私有字段命名是,要以下划线(_)开头,随后的英文字母采用骆驼命名法

002.为类的属性命名时用Pascal命名法(即组成属性名称的多个单词的首字母均大写)

05.对象初始化器

    未使用对象初始化器:

      Dog dog=new Dog();

      dog.Age=6;

    使用对象初始化器:

Dog dog=new Dog(){Age=6};

4.值传递和引用传递

  值传递:方法传递参数是如果采用值传递,那么就算在被调用的方法中对参数的值进行修改,在方法调用之后,参数仍然是原来的值

值传递又分为值类型(不会更改内容) 和引用类型(会更改内容)

示例如下(值类型):

 

有输出结果可判定值传递不会更改数值

示例如下(引用类型):

引用传递:在C#中,要想使参数按引用传递,需要ref关键字来修饰参数

示例如下:

输出结果:

可见引用传递会保留对数值的更改

最新文章

  1. bzoj4364: [IOI2014]wall砖墙
  2. PHP基础知识之数组
  3. Anciroid的IPC机制-Binder概述
  4. Laravel如何优雅的使用Swoole
  5. CentOS修改默认编码为UTF-8,使java程序字符集默认为UTF-8
  6. Mathematical operation
  7. HDU-1698 JUST A HOOK 线段树
  8. 【shell】变量的配置文件
  9. java基础知识回顾之接口
  10. C#中Hashtable容器的了解与使用
  11. android休眠唤醒流程2
  12. Wireshark和TcpDump抓包分析心得
  13. Weka – 分类
  14. Azure Backup 简介
  15. CSS 分组 和 嵌套 选择器
  16. php.ini与php-fpm.conf配置文件的区别
  17. HTML5使用Canvas来绘制图形
  18. 我两年的web开发生涯
  19. sublime text package control 被墙的解决办法
  20. Java开发笔记(四十四)本地日期时间与字符串的互相转换

热门文章

  1. Python学习笔记:单例模式
  2. python学习之循环语句
  3. C++继承权限
  4. VIM配置IDE
  5. [WorldFinal 2012E]Infiltration(dfs+图论)
  6. Leetcode 538. 把二叉搜索树转换为累加树
  7. python-8错误调试测试
  8. Flume使用(案例分析)
  9. Spark-Streaming 常用流式计算算子
  10. Erlang中常用的类型转换[转]