在建议 GetComponent<>() 进行变量赋值时如何推断类型?

How to infer type when suggesting GetComponent<>() for variable assignment?

这是我写的(很多):

Rigidbody rb = G

现在我希望 ReSharper Code Completion 给我这样的建议:

GetComponent<Rigidbody>()

但事实并非如此。它建议 GetComponent<>() 并让我自己填写类型。我真正想要的是这样的:

SomeComponent foo = GetComponent<SomeComponent>();

ReSharper 应该具有在变量即将被分配时进行此类型推断所需的所有信息。

有没有办法手动将这种建议添加到 ReSharper,从而推断出正确的类型?我试过 Live Templates,但似乎没有办法访问我要分配的变量类型。

这其实很正常,<> 就像一个 () 但不同,这就像问为什么 ReSharper 不填写参数,仅此而已。

我找到了解决方案here

您可以使用 macros for Live Template variables 来推断 ReSharper 在变量点处猜测的类型。

  1. 打开 Rider 设置 [Ctrl+Alt+S] 并导航至编辑器 > 实时模板 > C# 或 Unity(以您喜欢的新模板位置为准)
  2. 使用您喜欢的快捷方式(在我的例子中 gc)和以下内容创建一个模板:GetComponent<$TYPE$>();$END$

  1. 单击 Availability 并添加 Unity C# fileC# 2.0+ expressions 的范围(这只是定义 ReSharper 将建议快捷方式的位置)
  2. 点击右下角的Edit Variables
  3. TYPE的宏改为Guess type expected at this point

  1. 单击 Save 并使用如下模板:

感谢安德鲁提出这个解决方案。如果您想在 Rider 中默认看到此功能,upvote it here