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>);
}
}
}

C# property简介的更多相关文章

  1. Python property使用简介

    property使用简介 by:授客 QQ:1033553122 功能简介 1) 把类方法变成只读属性 2) setter和getter的另一种实现 代码演示1 #!/usr/bin/env pyth ...

  2. Android Animation学习(一) Property Animation原理介绍和API简介

    Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...

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

    @property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的gette ...

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

    @property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的gette ...

  5. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  6. html标签属性(attribute)和dom元素的属性(property)

    简介 attribute和property都有属性之意,但对于attribute和property的区分其实并不难.从对象来说,attribute是html文档上标签属性, 而property则是对应 ...

  7. 第一篇:Entity Framework 简介

    先从ORM说起吧,很多年前,由于.NET的开源组件不像现在这样发达,更别说一个开源的ORM框架,出于项目需要,以及当时OOP兴起(总不至于,在项目里面全是SQL语句),就自己开始写ORM框架.要开发O ...

  8. OC笔记一:Objective-C简介

    1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码 ...

  9. DBCP连接池简介

    DBCP连接池简介 1.数据库连接基础 数据库连接池基础主要包括以下三个方面的内容:数据库连接池的基本概念.数据库连接池的工作原理.Java开源的连接池.下面将从这三个方面一一介绍: (1)数据库连接 ...

随机推荐

  1. 转载:C# this.Invoke()的作用与用法 理解三

    Invoke()的作用是:在应用程序的主线程上执行指定的委托.一般应用:在辅助线程中修改UI线程( 主线程 )中对象的属性时,调用this.Invoke();   在多线程编程中,我们经常要在工作线程 ...

  2. 使用C#实现FTP的文件上传和下载【转】

    参考博文:http://blog.163.com/mity_rui@126/blog/static/1098136182013101525615577/  

  3. About_MySQL Select--来自copy_03

    MySQL Select   查询分类 单表查询:简单查询 多表查询:连接查询 联合查询:多个查询结果汇总 查询的组成 投影查询:挑选要显示的字段 select array1,array2,... f ...

  4. QSpinBox 和 QSlider 联合使用方法

    在Qt中,有时候我们想要联合QSpinBox 和 QSlider,使得移动滑块,QSpinBox中的数据会变化,或者我们在QSpinBox中输入一个数值,响应的滑块也会变化,如下图所示:

  5. hdu Tempter of the Bone

    很典型的dfs题,但是涉及到很多的剪枝 . 奇偶剪枝: 是数据结构的搜索中,剪枝的一种特殊小技巧. 现假设起点为(sx,sy),终点为(ex,ey),给定t步恰好走到终点, s         |   ...

  6. html中a标签做容器的问题

    今天试验了一下a标签当作容器的问题,若a包含的容器中没有a标签的话,a标签是可以被当作成容器使用的,在谷歌浏览器这种浏览器中是可行的,但是在低版本的IE中会有bug出现,就是浏览器在解析的时候会把a标 ...

  7. centos安装php

    1.安装phpyum install php php-devel重启apache使php生效 2.此时可以在目录:/var/www/html/下建立一个PHP文件代码:<?php phpinfo ...

  8. SpringMVC详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  9. Python中的属性管理

    Python管 理属性的方法一般有三种:操作符重载(即,__getattr__.__setattr__.__delattr__和 __getattribute__,有点类似于C++中的重载操作符).p ...

  10. Leetcode | Find Minimum in Rotated Sorted Array I && II

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...