闪客动漫天地
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
闪客动漫天地论坛

发表新主题 回复该主题
本主题被查看931次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 存取器方法 (转)
新手上路
UID: 309719
来自:
精华: 0
积分: 11
帖子: 11
注册: 2007-6-20 16:01:00
状态: 离线
威望: 0.00
金钱: 2.75 元
只看楼主 2007-06-21 15:40
存取器方法 (转)
前段时间,由于工作的原因,没有时间学习C#.
现在好了,工作不太忙了.可以继续学习了,哈哈!
不过以前学习都忘记的差不多了,现在还得重新学起了.
存取器方法:就是get和set语句组成的方法.他们可以在私有成员中提取值和赋值.这个方法让用户可以对私有变量进行操作.
在C#中的存取器方法.比java中提取值和赋值方便多了.
设计类时的—个好的目标总是不仅仅隐藏类成员的实现,而且禁止任何对类字段成员的直接访问。
通过“存取器方法”——其职责就是获取和设置字段的值,您就可以确保字段可以被正确处理,也就是说,根据您特定的问题域规则而执行必要的操作处理。
比如,假设您有—个地址类Address包含一个邮政编码字段ZipCode和一个城市字段City,当客户修改字段Address.ZipCode时,您希望通过一个数据库来验证邮政编码是否有效,并且根据邮政编码自动设置Address.City字段的值。如果客户可以直接访问一个公共的Address.ZipCode成员的话,上面这两个任务就有点难了。因为直接更改成员变量并不需要方法。因此,除了可以直接访问Address.ZipCode字段之外,更好的解决方案是将Address.ZipCode和Address.Cipy这两个字段定义为“protected”,然后提供存取器方法来获取和设置Address.ZipCode字段的值。这样,您就可以附加一些代码来执行需要的操作了。 这个邮政编码的程序在C#中的示例代码如下。注意真正的ZipCode字段被定义为“protected”,因此客户不能直接访问它。而存取器方法GetZipCode和SetZipCode被定义为“public”:
class Address {
protected string ZipCode;
protected string City;
public string GetZipCode()
{ return ZipCode; }
public string SetZipCode(string zipcode) {
//Validate value against some datasource ZipCode = zipcode;
//Update city based on validated zipCode } }
客户可以这样来访问 ZipCode 的值。
class TestApp {
[STAThread] static void Main(string[] args)
{ Address addr = new Address();
addr.SetZipCode("710041");
string zip = addr.GetZipCode();
属性主要用于描述和维护类对象的状态。从客户端看,对属性的访问就好像直接访问public字段成员一样,但是,在类内部是通过类方法访问的,从而实现了优秀的面向对象数据隐藏。类属性的建立有其自身的一套语法规则。通常,创建一个属性包含两个步骤:
声明一个私有字段来存储属性值。
编写一个属性声明,为属性值提供访问接口。
1、属性声明格式 属性的建立要使用属性声明,
语法: [访问修饰符] 类型名 属性名
{ get
{
return 私有字段;
}
set
{
私有字段 = value;
}
}
例如:
private string p_name;
public string name
{
get
{
return p_name;
}
set
{
p_ame = value
}
}
#1  
发表新主题 回复该主题
本主题被查看931次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-09-08 18:44:46
沪ICP备05003105号

版权所有 闪客俱乐部  
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.128 seconds