[英]Is there a C# equivalent of Python's __dict__
當嘗試查看已實例化的給定類的所有實例屬性時,我可以在python中執行此操作:
myObject.__dict__
以查看為此實例存儲的所有鍵/值對。
可以用C#完成嗎?
不是完全重復的,所以我沒有對其進行標記,而是看一下如何獲取類的屬性列表? 。 有一些很好的示例,說明了如何使用Reflection
庫。 例如,您可以使用myObject.GetType().GetProperties()
。 這僅返回具有至少一個訪問器( get
或set
)的屬性。 因此, public int num = 0
的實例將不包含在返回值中,而是public int num {get; set;} = 0
public int num {get; set;} = 0
。
反射庫中的Type.GetFields()
和Type.GetField(string)
也可能與您要查找的內容接近。 例如:
Type t = typeof(myType);
FieldInfo[] arr = t.GetFields(BindingFlags.Public|BindingFligs.NonPublic);
var newInstance = new myType();
foreach (FieldInfo i in arr)
{
Console.WriteLine(i.GetValue(newInstance));
}
我不確定是否有專門用於此目的的方法。 但是,您可以對對象進行JSON編碼並將其打印為一個類似的概念。
var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jsonSerializer.Serialize(yourDictionary);
//output json
使其具有“漂亮的打印效果”可能也值得,因此更易於閱讀:
這使用JSON.net,但無論如何我還是比較喜歡:
string json = JsonConvert.SerializeObject(yourDictionary, Formatting.Indented);
Console.WriteLine(json);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.