第三章 . 如何使用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关键字来修饰参数

示例如下:

输出结果:

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

我们曾经心碎的C#之 第三章.如何使用C#属性的更多相关文章

  1. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  2. 《Linux内核设计与实现》读书笔记 第三章 进程管理

    第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限于 ...

  3. Python黑帽编程3.0 第三章 网络接口层攻击基础知识

    3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体 ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (19) -----第三章 查询之使用位操作和多属性连接(join)

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-16  过滤中使用位操作 问题 你想在查询的过滤条件中使用位操作. 解决方案 假 ...

  6. WCF入门教程(三)定义服务协定--属性标签

    WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...

  7. 《python核心编》程课后习题——第三章

    核心编程课后习题——第三章 3-1 由于Python是动态的,解释性的语言,对象的类型和内存都是运行时确定的,所以无需再使用之前对变量名和变量类型进行申明 3-2原因同上,Python的类型检查是在运 ...

  8. 精通Web Analytics 2.0 (5) 第三章:点击流分析的奇妙世界:指标

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第三章:点击流分析的奇妙世界:指标 新的Web Analytics 2.0心态:搞定它.新的闪亮系列工具:是的.准备好了吗?当然 ...

  9. 数据结构与算法分析——C语言描述 第三章的单链表

    数据结构与算法分析--C语言描述 第三章的单链表 很基础的东西.走一遍流程.有人说学编程最简单最笨的方法就是把书上的代码敲一遍.这个我是头文件是照抄的..c源文件自己实现. list.h typede ...

随机推荐

  1. laravels -- Swoole加速php

    LaravelS是一个胶水项目,用于快速集成Swoole到Laravel,然后赋予它们更好的性能.更多可能性. 环境 : ubuntu16 + nginx + php7.1 + LaravelS搭建高 ...

  2. linux poll用法

    相对于select来说,poll 也是在指定时间内论询一定数量的文件描述符,来测试其中是否有就绪的,不过,poll 提供了一个易用的方法,来实现 i/o 复用. 声明如下: #include < ...

  3. python lamba表达式

    lambda函数也叫匿名函数,即,函数没有具体的名称. g=lambda x:x**2 def f(x): return x**2 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边是 ...

  4. 关于Python、Java、C#语言的一些比较

    不能说某某语言不好! 首先,千万别说某一个语言好不好,应为这样的用词是错的,我曾经在好多场合听到一些程序员说java好,.net不好这类的话. 其实语言不分好坏,只是在具体的某些领域或业务场景上不合适 ...

  5. java跨服务器请求url获得数据

    在项目中,有时需要通过请求远程服务器上的url获取数据(前提是程序所在服务器可以和url服务器ping成功), 用java在后台发送请求时,用到了java.net.URL, java.net.URLC ...

  6. windows 定时任务 - 定时关机

    添加定时关机,刚好可以利用windows定时任务 [开始]->[控制面板]->[任务计划]->[添加任务计划] 1.找到 shutdown.exe 设置每天执行 2.设置晚上10点 ...

  7. BitLocker:如何启用网络解锁

    TechNet 库Windows ServerWindows Server 2012 R2 和 Windows Server 2012服务器角色和技术安全和保护BitLockerBitLocker 中 ...

  8. USACO Section1.1 Broken Necklace 解题报告

    beads解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  9. c语言在windows下和Mac下的不同表现!

    最近给一个等级考试的C语言培训班上课,学生问起一些++的问题.让我好生为难.因为这些不同的编译器处理方式,在不同的系统下表现并不一致. 不管你洋洋洒洒论述多么一大篇,在事实面前就一下显得苍白了.虽然这 ...

  10. Jmeter日期

    有的时候我们接口中会有需要传递日期的参数,这是jmeter工具中给我准备一个 日期函数_time,如下图所示: 取到的将会是年月日 对应的写法有 yyyy-MM-dd HH:mm:ss  ---年月日 ...