gpt4 book ai didi

c# - 异常 StackTrace 的返回类型

转载 作者:行者123 更新时间:2023-11-30 15:19:41 28 4
gpt4 key购买 nike

您好,我正在从遗留的 VB 代码编写 C# 代码,我有一个函数:

Public Shared Sub logError(ByVal ex As Exception, ByVal additionalInfo As String) 
Dim messagestr As String
If ex.StackTrace.Length > 0 Then
For Each stackTrace As String In ex.StackTrace
messagestr &= stackTrace
Next
End If

我将 for 循环转换为:

foreach (string stackTrace in ex.StackTrace)
{
messagestr += stackTrace;
}

'foreach' 下有一条错误消息:“无法将类型 'char' 转换为 'string'。

当我从 MSDN 上读到 StackTrace 返回一个字符串时,这很奇怪。所以我不知道为什么遗留的 VB 代码中有一个 for 循环。另外,我不知道“char”的来源。

我想我完全迷失在这个领域。谁能帮帮我?

最佳答案

ex.StackTrace 的返回类型是一个字符串。您将通过遍历 string 获得的对象是 char 而不是另一个 string。所以你的 foreach 循环必须是:

foreach (char stackTrace in ex.StackTrace)
{

}

或者简单地将堆栈跟踪附加到您的字符串:

messagestr += ex.StackTrace;

如果您想单独获取所有函数调用,请使用此代码将您的字符串分成几行:

var stackLines = ex.StackTrace.Split('\n')

关于c# - 异常 StackTrace 的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800229/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com