【问题标题】:How do I highlight class Variables in Sub-Class within Visual Studio Editor如何在 Visual Studio 编辑器中突出显示子类中的类变量
【发布时间】:2017-08-26 12:00:16
【问题描述】:

我不经常发帖,我曾尝试进行研究,但根本无法使用 Visual Studio 2017 社区编辑器找到我的愿望。我是 C# 的入门级娱乐程序员,现在正在学习子类。这是我的愿望(和问题):

我在一个单独的文件中开发了一个类(父类)。这是一个非常简单的类,带有一些公共变量。现在在一个单独的文件中,我有另一个基于父类的子类子类(子类:父类)。在 Child 类中,我使用 Child 中可用的 Parent 变量。一切都很好,编译器不会将我的代码标记为错误。所以,无论好坏,对或错,我都掌握了类和子类的窍门。

我对 Visual Studio 编辑器的愿望是,当我查看 Child 类中的一些变量时,我发现自己想知道,这些变量是从哪里来的?它们是在哪里定义的?然后我有我的 ah-a 片刻,并记住他们来自 Parent 类。如果我“查看定义”代码,一切都会很好地展现给我。

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

只是一个愿望......否则我所拥有的很好,但是在很长一段时间后查看我的代码时可能会看到这些来自其他颜色的父类的变量会很好。

我确实尝试过字体颜色设置,但老实说不知所措,无法在此处找到直接命中。

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

谢谢。

【问题讨论】:

  • 我认为没有这样的选择。我从未见过甚至考虑过将超类中声明的成员着色为不同颜色的可能性。我认为事实是,你不需要它。当我现在看到一个新变量时,我会查看它的名称并弄清楚它的用途。只要编译器不抱怨,变量可能被声明为 somehwere.
  • 听起来您想创建一个 Rosyln Analyzer。这样做并不简单,但比以前扩展 VS 的方法更容易。
  • 感谢 Crowcoder 的评论。我从未听说过 Rosyln 分析仪,但我会研究它。感谢您的回复。

标签: c# visual-studio editor subclass


【解决方案1】:

我认为VS中没有这样的功能,反正你也不需要。根据 cmets 中的 Crowcoder ,这可以通过编写 Roslyn Analyzer 来完成,但我认为您不应该仅仅因为您想知道声明的变量在哪里就应该这样做。相信我,你不需要它。

事实是,在大多数情况下,您不必担心在阅读代码时究竟在哪里声明了一个变量。这就是编译器的工作。

如果你的变量和类命名得当,你就能立即理解,而无需考虑“等等这是从哪里来的?”。例如:

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

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

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

【讨论】:

  • 非常感谢 Sweeper 对我的问题的回答。现在我可以完全理解你的意思了。正是这句话让我明白了:“当你阅读代码时,你不应该担心变量的确切声明位置。这是编译器的工作。”。你知道也许是因为我是一个初学者,所以我只想了解我的代码的所有内容(老实说,我几个月都没看过)。但是你是对的......在审查代码时,如果编译器没有阻止它是类的一部分,这就是我需要知道的。再次感谢您。
【解决方案2】:

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

【讨论】:

  • 哇...你不会相信这一点,但老实说我不知道​​这个功能。我的意思是我看到各种各样的弹出提示出现了,但从来没有真正停下来看看出现了什么。请原谅我,因为我还是个新手,而且目前这只是一种爱好。我按照你的建议做了,确实我可以看到定义并在弹出提示中显示父类。所有这些都不需要“偷看”。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多