json_serializer.DeserializeObject、即时window、VS2017
json_serializer.DeserializeObject, immediate window, VS2017
我是一名c#初学者(但对JavaScript相当熟悉),我正在通过调试示例代码来学习。我现在有一个关于 "immediate window".
的问题
我设置断点在
(... nested object sent via JSON from some external javascript code ...)
var json_serializer = new JavaScriptSerializer();
var value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
然后立即评价以下window
value_list
Count = 4
[0]: {[type, msg]}
[1]: {[settings, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
[2]: {[hello, edge]}
[3]: {[txt, notepad.exe]}
value_list["txt"]
"notepad.exe"
value_list["settings"]
Count = 2
[0]: {[host, test.com]}
[1]: {[port, 80]}
到目前为止一切顺利。
然后我试了
value_list["settings"]["host"]
但是只得到了"error CS0021: Cannot apply indexing with [] to an expression of type 'object'".
如何立即打印主机的值window?
C# 是一种强类型语言。
你有
var value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
var
表示变量的类型在编译的时候就已经由编译器决定了。由于右侧的转换,编译器确定:
IDictionary<string, object> value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
因此,value_list
是 IDictionary<string, object>
类型。所以,value_list["settings"]
是 object
类型。
要查看立即数中的值 window 将中间结果(属于 object
类型)转换为适当的类型。
((IDictionary<string, object>)value_list["settings"])["host"]
我是一名c#初学者(但对JavaScript相当熟悉),我正在通过调试示例代码来学习。我现在有一个关于 "immediate window".
的问题我设置断点在
(... nested object sent via JSON from some external javascript code ...)
var json_serializer = new JavaScriptSerializer();
var value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
然后立即评价以下window
value_list
Count = 4
[0]: {[type, msg]}
[1]: {[settings, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
[2]: {[hello, edge]}
[3]: {[txt, notepad.exe]}
value_list["txt"]
"notepad.exe"
value_list["settings"]
Count = 2
[0]: {[host, test.com]}
[1]: {[port, 80]}
到目前为止一切顺利。
然后我试了
value_list["settings"]["host"]
但是只得到了"error CS0021: Cannot apply indexing with [] to an expression of type 'object'".
如何立即打印主机的值window?
C# 是一种强类型语言。
你有
var value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
var
表示变量的类型在编译的时候就已经由编译器决定了。由于右侧的转换,编译器确定:
IDictionary<string, object> value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
因此,value_list
是 IDictionary<string, object>
类型。所以,value_list["settings"]
是 object
类型。
要查看立即数中的值 window 将中间结果(属于 object
类型)转换为适当的类型。
((IDictionary<string, object>)value_list["settings"])["host"]