Пожалуйста, помогите мне объяснить следующее поведение:
dynamic d = 1;
ISet<dynamic> s = new HashSet<dynamic>();
s.Contains(d);
Код компилируется без ошибок / предупреждений, но в последней строке я получаю сообщение следующее исключение:
Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Collections.Generic.ISet<object>' does not contain a definition for 'Contains'
at CallSite.Target(Closure , CallSite , ISet`1 , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1)
at FormulaToSimulation.Program.Main(String[] args) in
Насколько я могу судить, это связано с разрешением динамической перегрузки, но странные вещи:
(1) Если тип s - HashSet
, нет возникает исключение.
(2) Если я использую неуниверсальный интерфейс с методом, принимающим динамический аргумент, исключение не возникает.
Таким образом, похоже, что эта проблема связана, в частности, с универсальными интерфейсами, но я не мог выяснить, что именно вызывает проблему.
Это ошибка в компиляторе / системе типов, Мне нужна навигация без пункта назначения. я пробовал с Intent i = new Intent (Intent.ACTION_VIEW, Uri.parse ("google.navigation: q =")); ...
Я много часов пытался запустить навигацию из моего приложения. Мне нужна навигация без пункта назначения.
Я пробовал использовать
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q="));
startActivity(i);
Это запускает навигацию, но пункт назначения не найден
Я тоже пытался запустить processName, packageName с startIntent с помощью com.google.android.apps.maps , com.google.android.apps.maps: проездной и ** com.google.android.maps.driveabout.app.DestinationActivity
тоже безуспешно: /
идея?