JetBrian Rider предложил «сделать компонент типа параметра», но я не знаю, почему - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время я использую JetBrains 'Rider в качестве IDE.

private void RemoveAlert(int idx, Image lockImg)
{
    ...
}

При написании приведенного выше кода я получил предложение от Rider о преобразовании параметра Тип изображения метода RemoveAlert в Компонент. Я не знаю почему.

Интересно, является ли это предложение более эффективным или привычным? Если вы знаете кого-то, пожалуйста, ответьте.

Это изображение от Rider:

The image is a suggestion from Rider.

1 Ответ

0 голосов
/ 28 июня 2018

Я не могу точно увидеть, как вы используете переменную (текст при наведении указывается на некоторые вещи), но ReSharper предложит это, когда вы используете производный класс, но не какие-либо дополнительные функции. Похоже, что вы получаете ссылку на его свойство gameObject, и если вы посмотрите иерархию наследования, Component - это класс самого низкого уровня, который имеет это свойство:

UnityEngine.UI.Image
UnityEngine.UI.MaskableGraphic
UnityEngine.UI.Graphic
UnityEngine.EventSystems.UIBehaviour 
UnityEngine.MonoBehaviour
UnityEngine.Behaviour
UnityEngine.Component <- has gameObject property
UnityEngine.Object    <- doesn't have gameObject property

Кроме того, если вас это раздражает, вы можете поставить над этой функцией следующее:

// ReSharper disable once SuggestBaseTypeForParameter

Или вы можете поместить это вверху самого файла, чтобы охватить все его функции:

// ReSharper disable SuggestBaseTypeForParameter
...