簡體   English   中英

是否有C#等同於Python的__dict__

[英]Is there a C# equivalent of Python's __dict__

當嘗試查看已實例化的給定類的所有實例屬性時,我可以在python中執行此操作:

myObject.__dict__以查看為此實例存儲的所有鍵/值對。

可以用C#完成嗎?

不是完全重復的,所以我沒有對其進行標記,而是看一下如何獲取類的屬性列表? 有一些很好的示例,說明了如何使用Reflection庫。 例如,您可以使用myObject.GetType().GetProperties() 這僅返回具有至少一個訪問器( getset )的屬性。 因此, 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

使其具有“漂亮的打印效果”可能也值得,因此更易於閱讀:

如何使用C#在.NET中獲取格式化的JSON?

這使用JSON.net,但無論如何我還是比較喜歡:

string json = JsonConvert.SerializeObject(yourDictionary, Formatting.Indented);
Console.WriteLine(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM