首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不允许使用RaiseEvent

不允许使用RaiseEvent
EN

Stack Overflow用户
提问于 2016-06-07 07:39:32
回答 1查看 14关注 0票数 0

我在下面声明了以下类。我希望它在完成计算后引发一个事件。然而,VS-2015告诉我“如果没有类方法的显式实例,就不能引用类的实例成员。”

谁能告诉我这里出了什么问题,以及我如何解决这个问题?我认为每个类都可以引发一个事件。

谢谢!

代码语言:javascript
复制
Imports System.Text
Imports System.IO
Imports Microsoft.Win32
Imports NAudio.Wave

Namespace VoiceRecorder.Audio

    Public Class AudioSaver

        Public Event Finished()

        Private _sInputPath As String

        Public Property _tsTrimFromStart As TimeSpan
        Public Property _tsTrimFromEnd As TimeSpan
        '  Public Property _sffSaveFileFormat As SaveFileFormat
        Public Property _sLameExePath As String

        Public Sub New(ByVal uInputPath As String)
            Me._sInputPath = uInputPath
        End Sub

        Public ReadOnly Property IsTrimNeeded As Boolean
            Get
                Return _tsTrimFromStart <> TimeSpan.Zero OrElse _tsTrimFromEnd <> TimeSpan.Zero
            End Get
        End Property

        Public Sub SaveAudio(ByVal uOutputPath As String)

            Dim sTempFiles As New List(Of String)
            Dim sPathToProcess = _sInputPath
            If IsTrimNeeded() Then
                Dim sTempFile As String = WavFileUtils.GetTempWavFileName()
                sTempFiles.Add(sTempFile)
                WavFileUtils.TrimWavFile(_sInputPath, sTempFile, _tsTrimFromStart, _tsTrimFromEnd)
                sPathToProcess = sTempFile
            End If

            '   If _sffSaveFileFormat = SaveFileFormat.Mp3 Then
            ConvertToMp3(Me._sLameExePath, sPathToProcess, uOutputPath)
                'Else
                '    File.Copy(sPathToProcess, uOutputPath, True)
                'End If
                DeleteTempFiles(sTempFiles)
        End Sub

        Private Sub DeleteTempFiles(ByVal tempFiles As IEnumerable(Of String))
            For Each tempFile In tempFiles
                If File.Exists(tempFile) Then
                    File.Delete(tempFile)
                End If
            Next tempFile
        End Sub

        Public Shared Sub ConvertToMp3(ByVal lameExePath As String, ByVal waveFile As String, ByVal mp3File As String)

            Dim nConverter = Process.Start(lameExePath, "-V2 """ & waveFile & """ """ & mp3File & """")
            nConverter.WaitForExit()

            RaiseEvent Finished()

        End Sub
    End Class
End Namespace
EN

回答 1

Stack Overflow用户

发布于 2016-06-07 07:56:24

明白了。我不得不删除“共享”属性,但我仍然不知道为什么会这样。

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

https://stackoverflow.com/questions/37668421

复制
相关文章

相似问题

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