对非共享成员的引用需要在调用公共子时发生对象引用

Posted

技术标签:

【中文标题】对非共享成员的引用需要在调用公共子时发生对象引用【英文标题】:Reference to a non-shared member requires an object reference occurs when calling public sub 【发布时间】:2012-11-07 21:17:31 【问题描述】:

我有一个公共类“General”,其中是一个公共子“updateDynamics”。当我尝试在代码隐藏中为这样的页面引用它时:

updateDynamics(get_prospect.dynamicsID)

我收到以下错误:

对非共享成员的引用需要对象引用

【问题讨论】:

【参考方案1】:

转到所需对象的声明并将其标记为共享。

Friend Shared WithEvents MyGridCustomer As Janus.Windows.GridEX.GridEX

【讨论】:

【参考方案2】:

您要么必须创建方法Shared,要么使用General 类的实例:

Dim gen = New General()
gen.updateDynamics(get_prospect.dynamicsID)

General.updateDynamics(get_prospect.dynamicsID)

Public Shared Sub updateDynamics(dynID As Int32)
    ' ... '
End Sub

Shared(VB.NET)

【讨论】:

谢谢,这正是我所需要的。我曾尝试做实例,但试图做一个 updateDynamics 的实例,而不是意识到 updateDynamics 将是 General 的一种方法。

以上是关于对非共享成员的引用需要在调用公共子时发生对象引用的主要内容,如果未能解决你的问题,请参考以下文章

C++/CLI:返回对非托管对象的引用

C#非静态的字段、方法或属性要求对象引用

VS提示“非静态的字段,方法或属性要求对象引用”

QtConcurrent 错误:对非静态成员的引用

VB 窗体在同一个项目中不能相互识别

[C++] 智能指针的引用计数如何实现?—— 所有该类的对象共享静态类成员变量