我想知道是否有一种更美观/更易于阅读的方式来编写以下内容:
for (int i = 0; i < 100; i++)
{
// If m.GetString(i) throws an exception, continue.
// Otherwise, do stuff.
try
{
string s = m.GetString(i);
continue;
}
catch (InvalidCastException)
{
}
// do stuff with the message that you know is not a string.
}
这是 m 的样子:
msg[0] = 10
msg[1] = "string"
msg[2] = 2.224574743
// Etc.
// Assume it's different every time.
因此,因此,当我m.GetString(0)
在此示例中执行此操作时,它会引发异常,msg[0]
auint
而不是 a string
。这是我用来获取类型的,因为m
不包含 GetType 并且我无法编辑 m。
Message
m 是我无法编辑的库中的类实例。
try-catch
然而,尽管这工作得很好,但为了获取类型而故意创建异常(即使它在 a 中)感觉效率低下(当然也不利于读者) 。
有没有更好的方法或者我坚持这个?
编辑:好的,我对Message
课程进行了更多研究(我应该一开始就这样做,我的道歉)。它是一个IEnumerable<object>