数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
pb中实现使用属性(property)访问类的私有字段

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

大家在delphi或c#中创建类时可以使用一个叫属性(property)的东东,可以用它来访问类的私有成员(当然是用方法控制的),

如下:
public class Person
{
  private int _age;

  public int Age
  {
    get
    {
       return _age;
    }
    set
    {
      if(value > 0)
        _age = value;
    }
}
其好处我就不多言说了,相信各种资料说的比我解释的好,大家也很清楚.

在pb中创建对象的时候有没有这样的东东呢,我们提出疑问:属性(property)是否存在?

我找呀找,终于在朋友的帮助下找到了一个好东东,它就是indirect关键字,有了它就可以帮助我们在pb中实现属性(property

)这个东东了.

indirect到底怎么用呢,我们来具体操作一下吧;)

1. 创建一个类,姑且叫uo_Person吧.
2. 声明一个实例变量private integer _age  (实例变量声明在Declare --> Instance Variables处,不用我多说,这里是废

话了^_^)
3. 创建两个个对象函数:
   //=================================================
   // 设置_age
   //-------------------------------------------------
   // return: integer 固定约束,要求必须为integer
   //-------------------------------------------------
   // 说明:函数语法不是按PB的来的,我是要表达下意思而已
   //=================================================
   private integer of_SetAge(integer aiAge)
   {
     if aiAge > 0 then
       _age = aiAge
       return 1
     else
       return -1
     end if
   }
  
   //================================================
   // 读取_age
   //------------------------------------------------
   // return: integer 类型与私有实例字段一致
   //================================================
   private integer of_GetAge()
   {
      return _age
   }
4. 在实例变量声明处声明一个特殊字段(相当于属性),格式如下:
   public indirect integer Age{of_SetAge(*value),of_GetAge()}

到此,我们带属性访问的类就完成了.

写一段代码测试一下;)
uo_Person luo_Test

luo_Test = create uo_Person

luo_Test.Age = 25

MessageBox('Info','My age is' + string(luo_Test.Age))

成功显示我的年龄,大功告成.

这样的类做起来有点麻烦,可是它有不少的好处,大家在实际应用中遇到了需要这样处理的问题要想到它,还要想到我,嘿嘿;)




相关文章

相关软件