Я могу использовать HasProperty
, чтобы проверить, существует ли свойство. Только если свойство существует, метод должен быть выполнен.Как сообщить компилятору, что свойство доступно только в том случае, если оно существует?
Как компилятор может успешно скомпилировать, даже если свойство не существует? Например.
if (UIApplication.SharedApplication.Delegate.HasProperty("Instance"))
{
AppDelegate customAppDelegate = UIApplication.SharedApplication.Delegate as AppDelegate;
customAppDelegate.Instance.SomeMethod(true); // can't be compiled because Instance doesn't exist
}
Дело в том, что во-первых, я проверяю, существует ли свойство. Если да, я выполняю свой метод. Поэтому обычно код никогда не выполняется (кроме свойства существует), но компилятор не может отличить это. Он проверяет только, существует ли свойство и не учитывает предложение if.
Есть ли решение для этого?
Используйте отражение, чтобы выполнить метод или применить его к 'dynamic'. – DavidG
Я не могу найти такие методы, как 'GetMethod()'. Я думаю, что они недоступны в моей среде выполнения. – testing
Затем переведите его в 'dynamic'. – DavidG