VB.NET的代码转为C#
Dim WithEvents RecoContext As SpeechLib.SpSharedRecoContext
	Dim Grammar As SpeechLib.ISpeechRecoGrammar	
	Dim m_bRecoRunning As Boolean
	Dim m_cChars As Short		
	Private Sub SimpleDict_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
		SetState(False)
		m_cChars = 0
	End Sub	
	Private Sub btnStart_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btnStart.Click
		System.Diagnostics.Debug.Assert(Not m_bRecoRunning, "")
		If (RecoContext Is Nothing) Then
             RecoContext = New SpeechLib.SpSharedRecoContext
             Grammar = RecoContext.CreateGrammar(1)
             Grammar.DictationLoad()
         End If		
		Grammar.DictationSetState(SpeechLib.SpeechRuleState.SGDSActive)
		SetState(True)
	End Sub	
	Private Sub btnStop_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btnStop.Click
		System.Diagnostics.Debug.Assert(m_bRecoRunning, "")
		Grammar.DictationSetState(SpeechLib.SpeechRuleState.SGDSInactive)
		SetState(False)
	End Sub	
	Private Sub RecoContext_Recognition(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal Result As SpeechLib.ISpeechRecoResult) Handles RecoContext.Recognition
		Dim strText As String
		strText = Result.PhraseInfo.GetText
		txtSpeech.SelectionStart = m_cChars
		txtSpeech.SelectedText = strText & " "
		m_cChars = m_cChars + 1 + Len(strText)
	End Sub
	Private Sub SetState(ByVal bNewState As Boolean)
         m_bRecoRunning = bNewState
         btnStart.Enabled = Not m_bRecoRunning
         btnStop.Enabled = m_bRecoRunning
     End Sub
这段代码如何转为C#呢?
------解决方案--------------------http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
------解决方案--------------------C# code
SpeechLib.SpSharedRecoContext RecoContext; 
SpeechLib.ISpeechRecoGrammar Grammar; 
bool m_bRecoRunning; 
short m_cChars; 
private void SimpleDict_Load(object eventSender, System.EventArgs eventArgs) 
{ 
    SetState(false); 
    m_cChars = 0; 
} 
private void btnStart_Click(object eventSender, System.EventArgs eventArgs) 
{ 
    System.Diagnostics.Debug.Assert(!m_bRecoRunning, ""); 
    if ((RecoContext == null)) { 
        RecoContext = new SpeechLib.SpSharedRecoContext(); 
        Grammar = RecoContext.CreateGrammar(1); 
        Grammar.DictationLoad(); 
    } 
    
    Grammar.DictationSetState(SpeechLib.SpeechRuleState.SGDSActive); 
    SetState(true); 
} 
private void btnStop_Click(object eventSender, System.EventArgs eventArgs) 
{ 
    System.Diagnostics.Debug.Assert(m_bRecoRunning, ""); 
    Grammar.DictationSetState(SpeechLib.SpeechRuleState.SGDSInactive); 
    SetState(false); 
} 
private void RecoContext_Recognition(int StreamNumber, object StreamPosition, SpeechLib.SpeechRecognitionType RecognitionType, SpeechLib.ISpeechRecoResult Result) 
{ 
    string strText; 
    strText = Result.PhraseInfo.GetText; 
    txtSpeech.SelectionStart = m_cChars; 
    txtSpeech.SelectedText = strText + " "; 
    m_cChars = m_cChars + 1 + Strings.Len(strText); 
} 
private void SetState(bool bNewState) 
{ 
    m_bRecoRunning = bNewState; 
    btnStart.Enabled = !m_bRecoRunning; 
    btnStop.Enabled = m_bRecoRunning; 
}