У меня есть кнопка, и я хочу установить ее состояние. Я нашел Button.interactable
и Button.IsInteractable()
. Какая разница? Второй - «виртуальный bool», но я не знаю, что это значит.Разница между Button.interactable и Button.IsInteractable()
ответ
Buttonнаследует от UI.Selectable
и поэтому он реализует метод IsInteractable()
, что это просто проверка, в то время как Button.interactable
позволяют изменить собственности.
Насколько виртуальный метод , то оно означает, что метод может быть переопределен в производного класса, и что может случиться с new
ключевым словом (что переопределяет метод только для полученных класс) или с override
(который может также влияет на база класса)
Я не вижу, как это отвечает на вопрос. 'interactiveable' и' IsInteractable() 'являются членами' Selectable'. Вы можете _check_ значение с 'взаимодействующим' так же легко, как с' IsInteractable() '. Что такое _difference_ между ними, кроме очевидных различий «свойство против метода»? –
@PeterDuniho Помимо очевидного факта, что один - это только чек, а другой позволяет сделать изменения, я попытался подчеркнуть тонкую разницу, связанную с тем, что виртуальный (что-то упомянутое OP), то есть тот факт, что виртуальный метод может быть переопределено также для Selectable, когда это экземпляр Button ... –
Члену класса не обязательно быть 'virtual', чтобы быть« переопределенным »с ключевым словом' new' в производном классе. Мне кажется, что эта часть вашего ответа не такая тщательная или полезная, как то, что OP мог найти просто, прочитав [документацию] (https://msdn.microsoft.com/en-us/library/9fkccyh4.aspx). Точно так же простое понимание разницы между свойством и методом в C# привело бы их к тому же пониманию, что и первая часть вашего ответа. Я бы подумал, что OP ищет больше обсуждения Unity3d. –
Оба использует Selectable.interactable
под капотом, чтобы проверить, если кнопка включена или выключена.
Существует только один разница.
Button.IsInteractable()
является готов только и используется для проверки если Button
включена или отключена. Это также функция.
Button.interactable
может быть использована для проверки, если Button
включен или выключен, а также может быть использован для включения или отключения кнопки, установив его на true
или false
. Button.IsInteractable()
не может этого сделать.
Оба возвращают 'bool ', а не [' Selectable'] (https://docs.unity3d.com/ScriptReference/UI.Selectable.html). –
Ooops. Это не то, что я хотел сказать. Исправлено. Хотел сказать, что они оба используют Selectable.interactable для выполнения своей работы и являются теми же, за исключением того, что один является функцией, а другой - нет. Кроме того, функция одна только для чтения – Programmer
Хорошо, тогда ... что метод «только для чтения» (я предполагаю, что вы действительно не имели в виду «только готовый»), очевидно для всех, кто знает C#. Как это на самом деле отвечает на вопрос? Когда OP будет использовать свойство, а не метод или наоборот? Кроме того, если кто-то переопределяет виртуальный метод 'IsSelectable()', какова тогда связь между свойством и методом? Я нахожу отсутствие по-настоящему полезных ответов на этот вопрос, обескураживающий. Пока что вы оба указали очевидное. –
- 1. Разница между композитором.phar между | и ||
- 2. Разница между ~/и ../
- 3. разница между $ и $$
- 4. разница между & и * Декларация
- 5. Разница между% и/
- 6. Разница между jquery и $
- 7. разница между -> и ::
- 8. Разница между. и ==
- 9. разница между Scala «+:» и «::»
- 10. Grails: Разница между \ $ {} и $ {}
- 11. Разница между! и ~
- 12. разница между (*) [] и * [] декларации
- 13. Разница между == и .equals()?
- 14. Разница между fmod и%
- 15. Разница между === и ==
- 16. Разница между комментариями/* */и/** * /?
- 17. Разница между ./ и ~/
- 18. Разница между: = и not (=)
- 19. разница между «/» и Слим
- 20. разница между 'есть' и '=='
- 21. Разница между «источником» и «.»
- 22. разница между `% в%` и `` ==
- 23. OCaml разница между :: и @
- 24. разница между $ @ и $ *
- 25. разница между! = И! ==
- 26. htaccess - Разница между. * И \ *
- 27. разница Javascript между «=» и «===»
- 28. Разница между «+» и «~»
- 29. какая разница между @ и @ :?
- 30. Разница между || и || =?
См. Также [документация для ключевого слова 'virtual'] (https://msdn.microsoft.com/en-us/library/9fkccyh4.aspx). Если вам нужно что-то другое, пожалуйста, напишите новый вопрос, в котором вы объясните _precisely_, с чем вам нужна помощь. Объясните, какие исследования вы уже сделали, и что конкретно касается информации, которую вы обнаружили, с которой вам по-прежнему нужна помощь. Пожалуйста, убедитесь, что ваш вопрос требует чего-то, кроме того, что уже четко указано в ссылках на язык. –
@PeterDuniho благодарит за помощь. Оба приведенных ниже ответа были чрезвычайно полезны и понятны. Я думаю, почему я не понял 'virtual', потому что некоторое время я использовал java, но недавно я начал с C# (в java afaik нет« виртуального »). Честно говоря, теперь вопрос по-настоящему кажется слишком простым. –
В Java нет ключевого слова 'virtual', но только потому, что все Java-методы являются виртуальными по умолчанию. Если вам нужен не виртуальный метод в Java, вы помечаете его «final». –