C# property简介

property专属的关键字就只有value。其他的性质实现都是用其他的方法的组合。property通过对一系列方法的灵活组合应用,能够间接地对私有的成员变量进行赋值操作和得到值。因为是间接地,私有变量的隐私性也是得到了保护。在下面这个例子中:

定义一个Teacher类。老师的性别是隐私的,名头也是隐私的。但是,可以定义一个property,用set和get方法间接地外部操作。注意这个专有的关键词value,它代表在外部赋值时等号右边的值,也就是输入的值。在property的set内部,是可以对value进行操作的。set方法是非常灵活的,可以有多种操作。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<strong>using</strong> System;

<strong>namespace</strong> PropertyQuest

{

class Teacher{

string sex;//性别是私有的

string title;//头衔是私有的.假如头衔就是女老师,男老师

<strong>public</strong> stringTitle{

set{

sex = value.<strong>Split</strong>(‘ ‘)[0];//value是你在主程中,对Title赋值的时候,等号右边传递的值.

//字符串的split()方法是以一个或若干个字符为分隔符,分隔后的子串以字符串数组形式返回.这和Python蛮像的.

//[0]就是要得到第一个字符串.因为我要输入的Title是"female teacher"或者"male teacher",因此

//我以空格分割后,第一个字符串就是性别

title = value;//上一步操作sex,这一步操作title.说明set方法是很灵活的,一次可以设置多个成员变量

get {

return title;//间接得到title,title在set中已经设置

}

}

<strong>public</strong> string Sex {

get{

return sex;//间接得到sex的值.在上一个property中,sex被设置,在

//这个property中,单独使用get,得到sex.很灵活的

}

}

}

class Program{

<strong>public</strong> static void <strong>Main</strong>(string[] args)

{

Teacher t = <strong>new</strong> Teacher();

t.Title = "female teacher";//等号右边的就是value的值,赋给property Title后,在Title内部是会被操作的.

//间接地再赋给私有的成员变量.私有成员变量在当前类是不可见的,

//但是在Teacher类中是可见,因此可以被其他代码块使用,比如Title{}中的set{}.

Console.<strong>WriteLine</strong>(t.Sex);//通过property Sex间接得到私有成员变量sex的值

Console.<strong>WriteLine</strong>(t.Title);//通过property Title间接得到私有成员变量title的值

Console.<strong>Write</strong>("Press any key to continue . . . ");

Console.<strong>ReadKey</strong>(<strong>true</strong>);

}

}

}

时间: 2024-10-14 16:31:16

C# property简介的相关文章

关于@property()的那些属性及ARC简介

@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. NSObject对象的@property属性时,默认为atomic,提供多线程安全. 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic,setter函数会变成下面这样: NSLock *_lock = [[NSLock alloc]ini

关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】

@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. NSObject对象的@property属性时,默认为atomic,提供多线程安全. 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic,setter函数会变成下面这样: NSLock *_lock = [[NSLock alloc]ini

Apache Commons Configuration之一简介

1    简介 Commons Configuration软件类库提供通用配置接口,使Java应用程序从多种源读取配置文件.Commons Configuration提供简单类型访问和通过以下代码演示的多义配置参数: Double double = config.getDouble("number"); Integer integer = config.getInteger("number"); 配置参数可以从以下源加载: Properties文件 XML文档 Pr

【转】浏览器的渲染原理简介

How Browsers Work 这篇文章把浏览器的很多细节讲的很细,也有中文的翻译版本,现在转载的这篇是陈皓写的,目的的为了能在上班途中,或是坐马桶时就能读完,并能从中学会一些能用在工作上的东西. 浏览器工作大流程 先看个图 从图中,可以看到: 1) 浏览器会解析三个东西 * 一个 HTML/SVG/XHTML,事实上,Webkit 有三个C++的类对应这三类文档.解析这三种文件会产生一个DOM Tree * CSS,解析CSS会产生CSS规则树 * JavaScript 脚本,主要是通过

Angular 2 模板语法与常用指令简介

一.模板语法简介 插值表达式 <div>Hello {{name}}</div> 等价于 <div [textContent]="interpolate(['Hello'], [name])"></div> 模板表达式 1.属性绑定 1.1输入属性的值为常量 <show-title title="Some Title"></show-title> 等价于 <show-title [titl

DBCP连接池简介

DBCP连接池简介 1.数据库连接基础 数据库连接池基础主要包括以下三个方面的内容:数据库连接池的基本概念.数据库连接池的工作原理.Java开源的连接池.下面将从这三个方面一一介绍: (1)数据库连接池的基本概念 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的Web应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.因此,数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用

Hibernate核心技术简介

Hibernate核心技术简介 1.Hibernate映射文件开发     Hibernate映射文件就是项目中*.hbm.xml文件,其主要是完成各元素的配置,包括根元素.类元素.定义主键.设置主键生成方法.定义属性以及关联映射.下面一一单独说明: (1)根元素<hibernate-mapping> 映射文件的根元素是<hibernate-mapping>,每一个*.hbm.xml文件都有唯一的一个根元素.该元素包含以下属性:package.schema.catalog.defa

MVC 之 T4模板简介

个人网站地址:nee32.com 一.T4模板内容简介 为了更好地学习T4模板,我们安装一个插件tangible T4 Editor 在使用了EF生成实体类后,我们会发现一个.tt后缀的文件,它就是T4模板,直接打开 它的内容如下图: 就是这一个模板,生成了我们需要的类,省去了我们手写的麻烦,提高了工作效率,生成的实体类如下图: 那么,这些类是如何用T4模板生成出来的?要自定义模板又该如何操作? 下面来简单介绍下T4模板中的核心代码 1.全局变量申明 <#@ template language=

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM

OSGi原理与最佳实践:第一章 OSGi框架简介(5)Spring-DM 由  ValRay 发布 已被浏览8409次 共有3条评论 已被2个人收藏 2013-08-16 21:29 顶(1) 踩(0) osgi原理与最佳实践 1.3 Spring-DM 1.3.1 简介 Spring-DM 指的是 Spring Dynamic Modules.Spring-DM 的主要目的是能够方便地将 Spring 框架 和OSGi框架结合在一起,使得使用Spring的应用程序可以方便简单地部署在OSGi环