【发布时间】:2017-02-07 00:33:47
【问题描述】:
当我将鼠标悬停在 C# 代码中的 JObject 变量上时,我看到一个监视窗口弹出。当我展开它时,我会看到以下图像:
问题
ChildrenTokens 旁边的蓝色符号/图标表示什么?
此类符号/图标的完整列表在哪里?
我们都在观察窗口中看到了 ChildrenTokens。但是,当我在代码中并尝试访问 ChildrenTokens 属性时,智能感知不会显示它。为什么?
谢谢。
【问题讨论】:
-
它是
protected,这就是为什么您在智能感知中看不到它的原因。但它是一个属性(扳手),这就是为什么它与所有其他属性一起显示的原因。蓝丝带 (?) 表示protected。我不确定哪里有完整的列表。 -
msdn.microsoft.com/en-us/library/y47ychfe(v=vs.140) 有主图标,但不显示受保护的覆盖(它在底部有,但不同)
-
我可以理解为什么智能感知可能会列出受保护的属性,但我不明白为什么它会列出该属性并允许访问其值,而运行代码却无法访问其值。正在运行的代码不应该有权访问手表中列出的任何属性吗?
-
请注意,您也可以单击
Non-Public成员旁边的展开箭头。您也可以在其中看到私有字段... -
另请注意,您也看到了动态视图,因为
JObject是IDynamicMetaObjectProvider(通过JToken),因此您可以看到它的dynamic方面。
标签: c# visual-studio-2015 visual-studio-debugging