如何在 Visual Studio 编辑器中突出显示 Sub-Class 中的 class 变量

How do I highlight class Variables in Sub-Class within Visual Studio Editor

我不经常 post,我尝试进行研究,但根本无法使用 Visual Studio 2017 社区编辑器找到我的愿望是否可行。我是一个入门级的 C# 程序员,现在正在学习 sub-classes。这是我的愿望(和问题):

我在单独的文件中开发了一个 class(class 父级)。这是一个非常简单的 class,带有一些 public 变量。现在在一个单独的文件中,我有另一个基于父项 (class Child:Parent) 的子 class 子项。在 class Child 中,我使用 Parent 的变量,这些变量在 Child 中可用。一切都很好,编译器没有标记我的代码有错误。所以,无论好坏,对错,我都掌握了 classes 和 sub-classes 的窍门。

我对 Visual Studio 编辑器的希望是,当我查看我的 Child class 中的一些变量时,我发现自己在想,这些变量是从哪里来的?它们在哪里定义的?然后我突然想起它们来自 Parent class。如果我“查看”代码的定义,一切都会很好地向我展示。

但我的问题是 Visual Studio 编辑器能否以某种方式为子 class 中使用但在父 class 中定义的这些变量着色?特别是当我的父 class 在另一个当前未打开的文件中时?

只是一个愿望...否则我所拥有的就很好,但如果在很长一段时间后查看我的代码时只看到这些来自父 class 的变量可能是另一种颜色,那就太好了。

我确实尝试过 Font-Color 设置,但老实说我不知所措,找不到直接点击的地方。

欢迎对这个优先级非常低的问题提出任何帮助或意见。

谢谢。

我认为VS中没有这样的功能,反正你不需要它。根据 Crowcoder 在评论中的说法,这可以通过编写一个 Roslyn 分析器来完成,但我认为你不应该仅仅因为你想知道变量声明在哪里而这样做。相信我,你不需要它。

事实是,在大多数情况下,您不是应该担心在阅读代码时究竟在何处声明变量的人。那是编译器的工作。

如果你的变量和类名字好听的话,不用想"Wait where does this come from?",立马就能看懂。例如:

class Slime: Monster {
    public Slime() {
        Health = 10;
    }
}

鉴于此代码编译成功,您是否需要担心Health定义在哪里?不!这是史莱姆!显然它会有一个 Health。您是否需要检查定义以了解它的用途?不!从名字上我们可以清楚的看出它代表了史莱姆还剩多少生命值。

基本上,我的意思是,如果您可以使用命名良好的变量编写代码,您将能够在不查看定义的情况下弄清楚每个变量的作用。

只需将鼠标悬停在成员变量上即可告诉您它的声明位置,例如如果在 X 的子类中并将鼠标悬停在 X 中声明的整数 'foo' 上,它将显示 int X.foo。这并不完全是您所要求的,正如其他人评论的那样,这并不容易获得,但这是迄今为止最简单的方法,并且不需要 Peek Definition。