C# 转换为VB后,';是一个事件,不能直接调用;
下面的代码是全局保存异常项目的一部分。我用SharpDevelop和Telerik的代码转换器将这个从C#转换成VB,得到了相同的结果 在Stackoverflow中搜索,我发现了这样一个问题:“为什么这个C#不能转换成VB?”,它解决了我遇到的相同错误,并给出了一个简单的答案,但没有说明如何使用它-至少这样我就知道要更改什么了 我得到的是“ONWRITETODATABASE”上的错误。完整错误是:“Public Shared Event ONWRITETODATABASE(键入为字符串,文本为字符串)”是一个事件,无法直接调用。请使用“RaiseEvent”语句引发事件 我该怎么做才能让它工作?(帽子是我的。)C# 转换为VB后,';是一个事件,不能直接调用;,c#,vb.net,raiseevent,C#,Vb.net,Raiseevent,下面的代码是全局保存异常项目的一部分。我用SharpDevelop和Telerik的代码转换器将这个从C#转换成VB,得到了相同的结果 在Stackoverflow中搜索,我发现了这样一个问题:“为什么这个C#不能转换成VB?”,它解决了我遇到的相同错误,并给出了一个简单的答案,但没有说明如何使用它-至少这样我就知道要更改什么了 我得到的是“ONWRITETODATABASE”上的错误。完整错误是:“Public Shared Event ONWRITETODATABASE(键入为字符串,文本为
首先,VB中的事件不是处理程序集合;它们只是您可以通过
AddHandler
收听的内容。因此,不可能知道(通过给出的简单翻译)是否有人听到你提出的事件。此外,As
条款在事件发生后无效。我认为你应该做的是用以下内容替换前两行:
Public Shared Event OnWriteToDatabase(DataType As String, Text As String)
然后,删除空检查和
\u logToDatabaseOK
之类的内容。(在进行此操作时,将函数更改为子,去掉返回值。如果确实要包含“Isnothing”检查(注意Ben的观察,您不需要它),可以引用隐藏的VB事件字段:
If OnWriteToDatabaseEvent IsNot Nothing Then 'the event followed by "Event"
这不是真的,VB知道自定义事件,这正是实现这一点的原因。Dave&@Ben N:该过程正试图将错误信息写入数据库。如果失败,则会将错误信息写入本地文件(最后的手段,更难获得).所以我确实需要IsNot Nothing检查。我真的不知道你所说的“事件”后面跟“事件”是什么意思。你会怎么写出来?它完全按照我指定的那样写:“如果OnWriteToDatabaseEvent不是Nothing,那么”。(VB添加了一个名为与事件相同的隐藏字段,后跟“event”-您通常不使用它,但它符合您的要求).Hi Dave-感谢您的回复。但是,我现在只使用了大约一年。显然,您的技能远远超出了我的能力。我真的不知道您在这里的意思。您能否创建一个答案并重写此代码以消除错误?一旦我看到您正在做的事情,那么我将能够更好地了解它的工作原理。Thanks!我的建议是使用“If ONWRITETODATABASE Event is Nothing Then”而不是“If ONWRITETODATABASE is Nothing Then”。谢谢Dave!这样做了-现在我可以通过搜索了解更多有关这项工作的信息。
If OnWriteToDatabaseEvent IsNot Nothing Then 'the event followed by "Event"