首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从类调用类属性

从类调用类属性
EN

Stack Overflow用户
提问于 2018-08-09 12:53:45
回答 2查看 748关注 0票数 5

在VBA类模块中(例如在Excel或Access中),我编写了一个函数SomeFunction()返回一个值。

如果我从类中的另一个函数/子调用它,是否应该调用它:

( a)这样:myVar = SomeFunction

( b)这边:myVar = Me.SomeFunction

我认为这两种方法都很有用,所以除了写作风格和清晰的SomeFunction是课程的一部分之外,这有什么区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-09 13:10:55

两者都是有效的,但是方式B应该是首选的,因为它更明确您正在做的事情。

考虑以下(有效)类代码:

代码语言:javascript
运行
复制
Public Property Get SomeValue() As Integer
    SomeValue = 5
End Property

Public Property Get AnotherValue() As Integer
    Dim SomeValue As Integer
    SomeValue = 3
    AnotherValue = SomeValue 'Returns 3
    Debug.Print Me.SomeValue 'Returns 5
End Property

因为您可以(但不应该)在VBA中这样做,所以使用Me.来明确您使用的是类属性而不是变量是一个很好的实践。

票数 6
EN

Stack Overflow用户

发布于 2018-08-09 13:10:48

据我所知-这没什么区别。

但是,如果在类中使用Me.,则可以使用Intellisense查看可用的子、函数和属性,这可能有点方便:

但是,我宁愿不使用Me

如果模块中有以下内容:

代码语言:javascript
运行
复制
Public Function Foo()
    Foo = 5
End Function

Sub TestMe()
    Dim cls As New Klasse1
    cls.TestMe
End Sub

然后在Klasse1中进行以下操作

代码语言:javascript
运行
复制
Sub TestMe()
    Debug.Print Modul1.Foo
    Debug.Print Me.Foo
    Debug.Print Foo
End Sub

Function Foo()
    Foo = 10
End Function

可见,Me.的存在仅仅是语法上的糖。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51767628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档