游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5835|回复: 27

class 与 type之间的问题 .

[复制链接]

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2007-1-23 14:10:00 | 显示全部楼层 |阅读模式
   为了不使程序中出现过多的类.  
   因此在一些简单的类用作type 定义在类中.
   现在在这个类中定义以这种type为数据类型的数组 .并通过友元属性让外部程序能够访问
   问题出来了,  类中的元素可以被外部程序读 , 但是写功能却无法实现.
   
Private Type UGp '存储用户物品数据
  ID As Long '物品ID号
  PType As String '物品名称
  Pnum As String '物品所在框名
  IsCheck As Boolean '物品是否丢失
  UseTime As Date '使用时间
  Njd As Integer '物品耐久度
End Type

Private Mcount As Integer '数组元素数量
Private UserWP() As UGp '用户物品数据组

Friend Property Get Unum(num As Long) As UGp   '根据名称读成员
    Dim Index As Integer
    Index = FindData(num)
    Unum = UserWP(Index)
End Property
Friend Property Let Unum(num As Long, vData As UGp)  '根据名称写成员 (用户物品数据)
    Dim Vdata1 As UGp
    Dim Index As Integer
    Index = FindData(num)
    Vdata1 = vData
    UserWP(Index) = Vdata1
End Property

一般情况下 写的过程  需要用byval 型参数 ,但是这里好像不许把type做为byval型参数

12

主题

423

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2007-1-23 14:36:00 | 显示全部楼层

Re:class 与 type之间的问题 .

前辈写的东西就是高,如果我没有记错,这个应该是一个类的属性操作方法.
只有类模块才能使用这个东西,能实现什么样的效果,我也不记得了。
我都是自定义自的方式,很少使用这样的。
但我明白Private Type UGp 是这个类的里面的自定义类型
您是方法是想通过类的属性操作来取得或设置这个自定义的UserW数组
可能出错会不会是数组的下标问题呢?

12

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2007-1-23 15:02:00 | 显示全部楼层

Re:class 与 type之间的问题 .

你的这个程序是写在类里面的吧,要从外面传递进来的话,外面的数据也要认识这个TYPE类,你把它定义成公共类型看看。

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
 楼主| 发表于 2007-1-23 15:02:00 | 显示全部楼层

Re:class 与 type之间的问题 .

  错误没有出 ,但是想在程序里改变这个数组的内容行不通 .
  读访问是可以的.
  类模块和模块没什么大的区别 .
  只是用类比用模块好维护些罢了,
  习惯问题 ,我现在已经习惯了面向对象的思维方式.  
  

45

主题

222

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2007-1-23 15:04:00 | 显示全部楼层

Re:class 与 type之间的问题 .

想不通啊。为啥都定义成了type结构。还想用class来操作值。
别说操作不方便,而且还浪费资源。
直接操作数组结构不是很好吗?保存数据到文件也很方便的。

顺便提一下结构。type是名称,用name和title也比较好吧。物品所在的框名是什么意思??
搞不懂。

呵呵。。

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
 楼主| 发表于 2007-1-23 15:10:00 | 显示全部楼层

Re:class 与 type之间的问题 .

   回  5楼 .  因为游戏里面  不只出现一个物品道具窗口.  所以要设置一个标识符(名称)来区别他们. 关于占资源问题...  倒是偶尔听说过...
   至于操作问题....
   编码方式上是比用模块废事 , 但是后期维护方便了.   你可能不太明白软件工程的理论吧

   回 .3楼 : 当然要定义成公共类型 . 不然根本不让你运行程序 ,直接提示编译出错.我在模块里面定义了, 你应该看到, 都使用友元属性了.
    这套技术是当年yinxiaodan前辈教的. 现在找不到他老人家了.
   唉...  都怪我学艺不精.

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
 楼主| 发表于 2007-1-23 15:11:00 | 显示全部楼层

Re:class 与 type之间的问题 .

1年前, 我用你说的那种方法.
完了以后 ,
你看看 ,我这一年前后俩个作品的差别就知道谁好谁坏了.  

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-1-23 15:14:00 | 显示全部楼层

Re: Re:class 与 type之间的问题 .

xiaoid: Re:class 与  type之间的问题 .

直接操作数组结构不是很好吗?


这个不行的吧
要VB.net以后才能在结构里加入方法啊

12

主题

525

帖子

525

积分

高级会员

Rank: 4

积分
525
发表于 2007-1-23 15:16:00 | 显示全部楼层

Re: Re:class 与 type之间的问题 .

zodane: Re:class 与  type之间的问题 .

当然要定义成公共类型 . 不然根本不让你运行程序 ,直接提示编译出错.我在模块里面定义了, 你应该看到, 都使用友元属性了.

看你的类型就知道是私有类型,怎么说是定义成了公共类型了?是你的类型定义错误。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-1-23 15:18:00 | 显示全部楼层

Re: Re: Re:class 与 type之间的问题 .

jyc8778: Re: Re:class 与  type之间的问题 .


看你的类型就知道是私有类型,怎么说是定义成了公共类型了?是你的类型定义错误。


对,这里明明就是写的Private

Private Type UGp '存储用户物品数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表