gpt4 book ai didi

vb.net - Sub New() 在此上下文中无法访问,因为它是 'Friend'

转载 作者:行者123 更新时间:2023-12-02 06:43:18 45 4
gpt4 key购买 nike

这是什么意思以及如何解决它?

如果我将 New 关键字放在下面的行中,则会出现此消息。如果删除它,我会在运行时收到错误消息,提示我需要使用 New。我做错了什么?

Dim oPS As AeccPointStyle = New AeccPointStyle
ops = oDescKey.PointStyle

Debug.Print(oPS.Name)
Debug.Print(oPS.MarkerSymbolName)

也尝试过

Dim oPS As New AeccPointStyle
ops = oDescKey.PointStyle

Debug.Print(oPS.Name)
Debug.Print(oPS.MarkerSymbolName)

谢谢!

更新 1 - 基于 Meta-Knight 的评论

1 -

Dim oPS As AeccPointStyle = Nothing
oPS = oDescKey.PointStyle

2-

Dim oPS As AeccPointStyle = oDescKey.PointStyle

两个版本都会抛出 NullReferenceExceptions。

最佳答案

AeccPointStyle 的空构造函数被标记为友元,这意味着只有其程序集中的类可以调用它。

但是看看你的代码,我认为你不需要调用 New。一开始只需将其设置为Nothing 即可。或者更好的是,直接使用合适的值设置变量:

Dim oPS As AeccPointStyle = oDescKey.PointStyle
<小时/>

编辑您的 NullReferenceException:

通常,当您调用值为 Nothing 的对象的属性时,会引发此类异常。在这种情况下,如果 oDescKey 设置为 Nothing,则会引发此类异常。

如果 oDescKey 的值不为 Nothing,则唯一执行某些代码的是 PointStyle 属性。因此可以安全地假设 PointStyle 属性抛出 NullReferenceException。尝试在调试器中观察 oDescKey.PointStyle 变量,您应该看到它抛出异常。

关于vb.net - Sub New() 在此上下文中无法访问,因为它是 'Friend',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167772/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com