Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换为VB后,';是一个事件,不能直接调用;_C#_Vb.net_Raiseevent - Fatal编程技术网

C# 转换为VB后,';是一个事件,不能直接调用;

C# 转换为VB后,';是一个事件,不能直接调用;,c#,vb.net,raiseevent,C#,Vb.net,Raiseevent,下面的代码是全局保存异常项目的一部分。我用SharpDevelop和Telerik的代码转换器将这个从C#转换成VB,得到了相同的结果 在Stackoverflow中搜索,我发现了这样一个问题:“为什么这个C#不能转换成VB?”,它解决了我遇到的相同错误,并给出了一个简单的答案,但没有说明如何使用它-至少这样我就知道要更改什么了 我得到的是“ONWRITETODATABASE”上的错误。完整错误是:“Public Shared Event ONWRITETODATABASE(键入为字符串,文本为

下面的代码是全局保存异常项目的一部分。我用SharpDevelop和Telerik的代码转换器将这个从C#转换成VB,得到了相同的结果

在Stackoverflow中搜索,我发现了这样一个问题:“为什么这个C#不能转换成VB?”,它解决了我遇到的相同错误,并给出了一个简单的答案,但没有说明如何使用它-至少这样我就知道要更改什么了

我得到的是“ONWRITETODATABASE”上的错误。完整错误是:“Public Shared Event ONWRITETODATABASE(键入为字符串,文本为字符串)”是一个事件,无法直接调用。请使用“RaiseEvent”语句引发事件

我该怎么做才能让它工作?(帽子是我的。)


首先,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"