让我知道:如何在 C# 中访问 Err?这是要转换的示例 VB 代码:
If Len(sPart1) <> PART1_LENGTH Then
Err.Raise(vbObjectError, , "Part 1 must be " & PART1_LENGTH)
ElseIf Not IsNumeric(sPart1) Then
Err.Raise(vbObjectError, , "Part 1 must be numeric")
让我知道:如何在 C# 中访问 Err?这是要转换的示例 VB 代码:
If Len(sPart1) <> PART1_LENGTH Then
Err.Raise(vbObjectError, , "Part 1 must be " & PART1_LENGTH)
ElseIf Not IsNumeric(sPart1) Then
Err.Raise(vbObjectError, , "Part 1 must be numeric")
首先,让我们将其转换为现代 VB 代码:
If sPart1.Length <> PART1_LENGTH Then
Throw New ApplicationException("Part 1 must be " & PART1_LENGTH)
ElseIf Not IsNumeric(sPart1) Then
Throw New ApplicationException("Part 1 must be numeric")
End If
然后 C# 翻译是直截了当的:
int part;
if (sPart1.Length != PART1_LENGTH) {
throw new ApplicationException("Part 1 must be " + PART1_LENGTH.ToString());
} else if (!Int32.TryParse(sPart1, out part)) {
throw new ApplicationException("Part 1 must be numeric")
}
假设您询问的是语法,而不是特定的类:
throw new SomeException("text");
替换Err.Raise
为
throw new Exception("Part 1 must be numeric");
我知道在 C# 和 VB.NET 中都应该使用异常,但是为了后代,可以在 C# 中使用 ErrObject。
OP的程序转换为C#的完整示例程序:
using Microsoft.VisualBasic;
namespace ErrSample
{
class Program
{
static void Main(string[] args)
{
ErrObject err = Information.Err();
// Definitions
const int PART1_LENGTH = 5;
string sPart1 = "Some value";
int vbObjectError = 123;
double d;
if (sPart1.Length != PART1_LENGTH)
err.Raise(vbObjectError, null, "Part 1 must be " + PART1_LENGTH);
else if (!double.TryParse(sPart1, out d))
err.Raise(vbObjectError, null, "Part 1 must be numeric");
}
}
}