VB.net中MyBase与MyClass与Me的区别

    xiaoxiao2021-03-25  89

    Me     就是 我 MyBase 就是 我老爸 除了上面两个,还有一个MyClass,我叫做 "本来的我" 为什么有“本来的我”,因为我会变质,变质后的我想找回以前的我,就MyClass. me是(mybase派生出来的myclass)的实例   注意,上面括号用于提高运算优先级,不是用于注释 -------------------------------------------------------------------------------------------------- MyBase:  当重写派生类中的方法时,可以使用MyBase关键字调用基类中的方法。假如正在设计一个重写从基类继承的方法的派生类。重写的方法可以调用基类中的该方法,并修改返回值。  MyClass:  使您得以调用在类中实现的Overridable方法,并确保调用用此类中该方法的实现,而不是调用派生类中重写的方法。该方法在基类中定义但没有在派生类中提供该方法的实现,这种引用的意义与MyBase. Method 相同  Me:  关键字的行为与引用类的当前实例的对象变量类似。一个类可以有多个实例,me 提供了一种方法,用来引用代码正在执行的该类的特定实例。 -------------------------------------------------------------------------------------------------- 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)
    转载请注明原文地址: https://ju.6miu.com/read-26425.html

    最新回复(0)