Me和MyBase什么区别?

wendyli 2005-04-13 01:40:55
Me和MyBase什么区别?
...全文
609 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qunluo 2005-04-14
  • 打赏
  • 举报
回复
哇塞!
我爸爸都出来了,我妈妈呢,么!

正解!
Mybeautiful 2005-04-14
  • 打赏
  • 举报
回复
me是自己,MyBase是父类
水如烟 2005-04-14
  • 打赏
  • 举报
回复
在我BLOG上有一篇胡说八道的“文章”,叫“我对‘类’的理解”
你如果不怕误导,可以去看看。
hamadou 2005-04-14
  • 打赏
  • 举报
回复
友元限定符意味着该变量在项目中可以被访问。
wendyli 2005-04-14
  • 打赏
  • 举报
回复
Friend 怎么理解?在c中表示友元吧?不了解,将将谢谢啦
a11s 2005-04-13
  • 打赏
  • 举报
回复
me是(mybase派生出来的myclass)的实例

注意,上面括号用于提高运算优先级,不是用于注释
sindyzhou 2005-04-13
  • 打赏
  • 举报
回复
Me不是实例吧?!
ray680719 2005-04-13
  • 打赏
  • 举报
回复
水如烟说的很形象了,呵呵
hamadou 2005-04-13
  • 打赏
  • 举报
回复
呵呵!
me是类的当前实例。
mybase是当前实例的基类的对象。
xxuu503 2005-04-13
  • 打赏
  • 举报
回复
UP我楼上的!
水如烟 2005-04-13
  • 打赏
  • 举报
回复
不知我的理解对不对,只供参考:
Me 就是 我
MyBase 就是 我老爸

除了上面两个,还有一个MyClass,我叫做 "本来的我"
为什么有“本来的我”,因为我会变质,变质后的我想找回以前的我,就MyClass.

哈,不知会不会误导各位。反正是交流,错了大家指出。
srxumin 2005-04-13
  • 打赏
  • 举报
回复
插入错了,改正如下:

MyBase 关键字
MyBase 关键字的行为类似于引用类的当前实例的基类的对象变量。MyBase 常用于访问在派生类中被重写或隐藏的基类成员。具体而言,MyBase.New 用于从派生类构造函数中显式调用基类构造函数。

使用 MyBase 调用 MustOverride 基方法无效。

当重写派生类中的方法时,可以使用 MyBase 关键字调用基类中的方法。例如,假设您正在设计一个重写从基类继承的方法的派生类。重写的方法可以调用基类中的该方法,并修改返回值,如下面的代码片段中所示:
Class DerivedClass
Inherits BaseClass
Public Overrides Function CalculateShipping(ByVal Dist As Double, _
ByVal Rate As Double) As Double
' Call the method in the base class and modify the return value.
Return MyBase.CalculateShipping(Dist, Rate) * 2
End Function
End Class
下面的列表描述对使用 MyBase 的限制:

MyBase 引用直接基类及其继承成员。它无法用于访问类中的 Private 成员。
MyBase 是关键字,不是实际对象。MyBase 无法分配给变量,无法传递给过程,也无法用在 Is 比较中。
MyBase 限定的方法不需要在直接基类中定义,它可以在间接继承的基类中定义。为了正确编译 MyBase 限定的引用,一些基类必须包含与调用中出现的参数名称和类型匹配的方法。
不能使用 MyBase 来调用 MustOverride 基类方法。
MyBase 无法用于限定自身。因此,下面的代码是非法的:
MyBase.MyBase.BtnOK_Click() ' Syntax error.
MyBase 无法用在模块中。
如果基类在不同的程序集中,则不能使用 MyBase 来访问标记为 Friend 的基类成员。



Me关键字
通过 Me 关键字,可以引用当前在其中执行代码的类或结构的特定实例。Me 的行为与引用当前实例的对象变量或结构变量类似。在向另一个类、结构或模块中的过程传递关于某个类或结构的当前执行实例的信息时,使用 Me 尤其有用。例如,假定在某模块中有以下过程:
Sub ChangeFormColor(FormName As Form)
Randomize()
FormName.BackColor = Color.FromArgb(Rnd() * 256, Rnd() * 256, Rnd() * 256)
End Sub
可以使用以下语句来调用此过程并将“窗体”(Form) 类的当前实例作为参数传递:
ChangeFormColor(Me)
srxumin 2005-04-13
  • 打赏
  • 举报
回复
MyBase 关键字
MyBase 关键字的行为类似于引用类的当前实例的基类的对象变量。MyBase 常用于访问在派生类中被重写或隐藏的基类成员。具体而言,MyBase.New 用于从派生类构造函数中显式调用基类构造函数。

使用 MyBase 调用 MustOverride 基方法无效。

当重写派生类中的方法时,可以使用 MyBase 关键字调用基类中的方法。例如,假设您正在设计一个重写从基类继承的方法的派生类。重写的方法可以调用基类中的该方法,并修改返回值,如下面的代码片段中所示:




通过 Me 关键字,可以引用当前在其中执行代码的类或结构的特定实例。Me 的行为与引用当前实例的对象变量或结构变量类似。在向另一个类、结构或模块中的过程传递关于某个类或结构的当前执行实例的信息时,使用 Me 尤其有用。例如,假定在某模块中有以下过程:
Sub ChangeFormColor(FormName As Form)
Randomize()
FormName.BackColor = Color.FromArgb(Rnd() * 256, Rnd() * 256, Rnd() * 256)
End Sub
可以使用以下语句来调用此过程并将“窗体”(Form) 类的当前实例作为参数传递:
ChangeFormColor(Me)


Class DerivedClass
Inherits BaseClass
Public Overrides Function CalculateShipping(ByVal Dist As Double, _
ByVal Rate As Double) As Double
' Call the method in the base class and modify the return value.
Return MyBase.CalculateShipping(Dist, Rate) * 2
End Function
End Class
下面的列表描述对使用 MyBase 的限制:

MyBase 引用直接基类及其继承成员。它无法用于访问类中的 Private 成员。
MyBase 是关键字,不是实际对象。MyBase 无法分配给变量,无法传递给过程,也无法用在 Is 比较中。
MyBase 限定的方法不需要在直接基类中定义,它可以在间接继承的基类中定义。为了正确编译 MyBase 限定的引用,一些基类必须包含与调用中出现的参数名称和类型匹配的方法。
不能使用 MyBase 来调用 MustOverride 基类方法。
MyBase 无法用于限定自身。因此,下面的代码是非法的:
MyBase.MyBase.BtnOK_Click() ' Syntax error.
MyBase 无法用在模块中。
如果基类在不同的程序集中,则不能使用 MyBase 来访问标记为 Friend 的基类成员。

16,557

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧