Visual studio visual studio的即时窗口如何打印对象的所有成员?
如何使用输出窗口写入对象的所有成员?Trace.WriteLine使用方法ToString,不输出所有成员。是否有API可以在不编写自己的代码的情况下执行此操作?它可能通过反射遍历成员。它可能通过反射遍历成员。调用特定对象上的ToString()方法,如果该方法已被重写以显示所有成员,则可以。但是,并非所有对象都实现了它们的ToString()方法,在这种情况下,该方法返回对象类型信息 与其调用ToString(),不如编写一个使用的自定义函数,并将其输出 编辑:此函数将返回给定对象的属性、添加方法、事件以及所需的所有其他内容。(在VB中,此工作PC上没有C#) 调用特定对象上的ToString()方法,如果该方法已被重写以显示所有成员,则可以。但是,并非所有对象都实现了它们的ToString()方法,在这种情况下,该方法返回对象类型信息 与其调用ToString(),不如编写一个使用的自定义函数,并将其输出 编辑:此函数将返回给定对象的属性、添加方法、事件以及所需的所有其他内容。(在VB中,此工作PC上没有C#)Visual studio visual studio的即时窗口如何打印对象的所有成员?,visual-studio,debugging,immediate-window,Visual Studio,Debugging,Immediate Window,如何使用输出窗口写入对象的所有成员?Trace.WriteLine使用方法ToString,不输出所有成员。是否有API可以在不编写自己的代码的情况下执行此操作?它可能通过反射遍历成员。它可能通过反射遍历成员。调用特定对象上的ToString()方法,如果该方法已被重写以显示所有成员,则可以。但是,并非所有对象都实现了它们的ToString()方法,在这种情况下,该方法返回对象类型信息 与其调用ToString(),不如编写一个使用的自定义函数,并将其输出 编辑:此函数将返回给定对象的属性、添加
您可以这样做:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var m = new MyClass { AString = "somestring", AnInt = 60 };
Console.WriteLine(GetObjectInfo(m));
Console.ReadLine();
}
private static string GetObjectInfo(object o)
{
var result = new StringBuilder();
var t = o.GetType();
result.AppendFormat("Type: {0}\n", t.Name);
t.GetProperties().ToList().ForEach(pi => result.AppendFormat("{0} = {1}\n", pi.Name, pi.GetValue(o, null).ToString()));
return result.ToString();
}
}
public class MyClass
{
public string AString { get; set; }
public int AnInt { get; set; }
}
}
您可以这样做:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var m = new MyClass { AString = "somestring", AnInt = 60 };
Console.WriteLine(GetObjectInfo(m));
Console.ReadLine();
}
private static string GetObjectInfo(object o)
{
var result = new StringBuilder();
var t = o.GetType();
result.AppendFormat("Type: {0}\n", t.Name);
t.GetProperties().ToList().ForEach(pi => result.AppendFormat("{0} = {1}\n", pi.Name, pi.GetValue(o, null).ToString()));
return result.ToString();
}
}
public class MyClass
{
public string AString { get; set; }
public int AnInt { get; set; }
}
}
不,不。我试图输出的类没有覆盖到字符串,我不想编写它。但即时窗口会以某种方式打印所有内容。我在寻找那种神奇的方法。这里没有神奇的方法。VS只是通过反思给成员打电话或评估;VS使用框架的反射,您也可以这样做。查看代码编辑。抱歉,我没有向上滚动,看到了添加在广告上方的代码。哦。好消息,克劳斯比斯科夫;)不,不。我试图输出的类没有覆盖到字符串,我不想编写它。但即时窗口会以某种方式打印所有内容。我在寻找那种神奇的方法。这里没有神奇的方法。VS只是通过反思给成员打电话或评估;VS使用框架的反射,您也可以这样做。查看代码编辑。抱歉,我没有向上滚动,看到了添加在广告上方的代码。哦。好消息,克劳斯比斯科夫;)谢谢如果我找不到API,我可能会使用你的代码。谢谢。如果我找不到API,我可能会使用您的代码。