如何将几行代码从 vb.net 转换为等效的 C#

How to convert a few lines of code from vb.net to its c# equivalent

我的任务是将一些较旧的 VB.net 代码转换为 C#。正在慢慢消除错误 - 从大约 100 个减少到现在大约 10 个。第一个需要转换的vb.net代码是:

Try
    My.Computer.FileSystem.CopyFile(strFile, strExportPath + "\" + strFileName(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
    intFilesCopied += 1

    My.Computer.FileSystem.MoveFile(strFile, _strPath + "Data\Backup\" + strFileName(0), FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
    intFilesMoved += 1

Catch ex As Exception
    My.Application.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click")

End Try

我的C#尝试如下:

try
{
    File.Copy(strFile, strExportPath + @"\" + strFileName[0], UIOption.OnlyErrorDialogs,
    FileIO.UICancelOption.DoNothing);
    intFilesCopied += 1;

    File.Move(strFile, _strPath + @"Data\Backup\" + strFileName[0],
    UIOption.OnlyErrorDialogs, UICancelOption.DoNothing);
    intFilesMoved += 1;
}
catch (Exception ex)
{
    Application.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click");
}

下一段 VB.NET 是 try-catch 子句的 catch 部分。

My.Application.Log.WriteException(ex, TraceEventType.Error, "Could not write record to data file " + _strActiveFileName + Environment.NewLine + "Record Data: " + strRecordText);

对于我来说,找不到与此对应的 C#。

我尝试添加 Microsoft.VisualBasic dll/reference/namespace,但这也不起作用。尝试 google 等效的 C#,但找不到任何东西。

The next piece of VB.NET is the catch portion of the try-catch clauses.

My.Application.Log.WriteException(ex, TraceEventType.Error, "Could not write record to data file " + _strActiveFileName + Environment.NewLine + "Record Data: " + strRecordText);

And for the life of me, cannot find the C#-equivalent for this.

这个可以转换为(参考Microsoft.VisualBasic.dll):

 Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase();

然后 :

 MyApplication.Log.WriteException(ex, TraceEventType.Error, "ExportDataToolStripMenuItem_Click");

您可以使用以下命令检查日志文件:

System.Windows.Forms.MessageBox.Show(MyApplication.Log.DefaultFileLogWriter.FullLogFileName);

(刚刚在 Windows 10 上测试过)