Код компилируется и выполняется в Visual Studio, даже если у него есть имя класса, на который нет ссылок

Синтаксис ->get_header - это вызов метода. Вызов метода передает invocant (т. Е. Имя объекта или класса) в качестве неявного первого аргумента.

Итак, предположим, что у нас есть

package MyUtil;
sub foo {}

, вызов

MyUtil->foo(1, 2, 3)

заканчивает выполнение MyUtil::foo("MyUtil", 1, 2, 3).

Конечно, вы можете напрямую вызвать

MyUtil::foo(1, 2, 3)

, не передавая никаких неявных аргументов.

См. также perldoc perlobj .

Другое отличие состоит в том, что версия :: выполняет обычный вызов функции, тогда как версия -> выполняет вызов метода, который также следует за наследованием, т.е. с MyUtil->foo вообще не должно быть MyUtil::foo sub, если MyUtil наследуется от класса, который предоставляет метод foo.

1
задан rory.ap 18 January 2019 в 20:33
поделиться

1 ответ

ActionResult находится в пространстве имен Microsoft.AspNetCore.Mvc, на которое вы фактически ссылаетесь. Visual Studio просто не подсвечивает правильно, это ошибка, с которой я сталкиваюсь время от времени.

0
ответ дан Valuator 18 January 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: