gpt4 book ai didi

c# - 如何模拟 C# Interactive Console 中的对象打印?

转载 作者:行者123 更新时间:2023-12-05 03:33:44 25 4
gpt4 key购买 nike

一个例子:

enter image description here

如果我们在 C# 控制台中键入 scoreDir,它的内容会被漂亮地打印出来,即对象的定义、它的长度和它的数据。

我想用内置 .NET 方法模拟这种打印,例如ToString()。然而,ToString() 不起作用,如图所示。 “模拟”意味着我可以生成相同的打印字符串,但将其存储在一个变量中。微软一定使用了一些函数来打印这样的对象;最好只是重新使用该功能(不要重新发明轮子)。

最佳答案

归功于@Hans Passant在评论区。

在 Visual Studio 中,安装 Nuget 包 Microsoft.CodeAnalysis.CSharp.Scripting 后,静态函数 Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpObjectFormatter.Instance.FormatObject() 可用于模拟与 C# 交互式控制台相同的输出。

这是有效的代码:

using System;
using System.IO;
using System.Collections.Concurrent;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var scoreDir = new ConcurrentDictionary<(int, int), (double, int)>();
scoreDir.TryAdd((1, 2), (0.9, 3));
var res = Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpObjectFormatter.Instance.FormatObject(scoreDir);
Console.WriteLine(res);
}
}
}

结果:

enter image description here

关于c# - 如何模拟 C# Interactive Console 中的对象打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70306339/

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