Вы можете добавить метод к своему объекту:
object.workflowIsDone = () => toast.open();
и вызвать его, когда рабочий процесс завершится:
object.workFlowIsDone()
В самых общих чертах статическое связывание означает, что ссылки разрешаются во время компиляции .
Animal a = new Animal();
a.Roar(); // The compiler can resolve this method call statically.
Динамическое связывание означает, что ссылки разрешаются во время выполнения .
public void MakeSomeNoise(object a) {
// Things happen...
((Animal) a).Roar(); // You won't know if this works until runtime!
}
Это зависит от того, когда происходит привязка: во время компиляции (статическая) или во время выполнения (динамическая). Статическая привязка используется при вызове простого метода класса. Когда вы начнете работать с иерархиями классов и виртуальными методами, компилятор начнет использовать так называемые VTABLE . В то время компилятор не знает точно, какой метод вызывать, и ему нужно подождать до времени выполнения, чтобы определить правильный метод, который нужно вызвать (это делается через VTABLE ). Это называется динамическим связыванием.
См. Статью Википедии о Виртуальных таблицах для более подробной информации и ссылок.
Статическое связывание: - это процесс разрешения типов, элементов и операций во время компиляции. Например:
Car car = new Car();
car.Drive();
В этом примере компилятор выполняет привязку путем поиска метода Drive
без параметров для объекта car
. Если не нашел этот метод! ищите методы, принимающие необязательные параметры , и, если этот метод не найден, снова ищите базовый класс из Car
для этого метода, а если метод не был найден, этот метод снова ищет ] методы расширения для типа Car
. Если совпадений не найдено, вы получите ошибку компиляции!
В этом случае привязка выполняется компилятором , и привязка зависит от статического знания типа объекта. Это делает статическую привязку.
Динамическое связывание: динамическое связывание откладывает связывание (процесс разрешения типов, членов и операций) от времени компиляции до времени выполнения . Например:
dynamic d = new Car();
d.Drive();
Динамический тип говорит компилятору, что мы ожидаем, что тип времени выполнения из d
будет иметь метод Drive
, но мы можем ' т статически . Поскольку d
является динамическим, компилятор откладывает привязку Drive
к d до времени выполнения .
Динамическое связывание полезно в случаях, когда во время компиляции мы знаем, что определенная функция, член операции существует, но компилятор не знал! Это обычно происходит, когда мы взаимодействуем с динамическими языками программирования , COM и отражением .
Привязка, выполняемая во время компиляции, является статической привязкой, а привязка, выполняемая во время выполнения, является динамической привязкой. В типе данных статической привязки указатель определяет, какой метод вызывается. Но в типе данных динамической привязки объекта определяется, какой метод вызывается.
* Время выполнения: - * привязка переменных к ее значениям, а также привязка переменной к определенному месту хранения во время выполнения называется привязкой ко времени выполнения.
МОЖЕТ БЫТЬ ДВУХ ТИПОВ
ОБЪЕДИНЕНИЕ ВРЕМЕНИ: - (ВРЕМЯ ПЕРЕВОДА) Оно состоит из следующего.