Оператор ?
обладает выразительной силой, аналогичной ключевому слову dynamic
в C # (но его можно использовать только для чтения свойств, вызова метода и установки свойств).
Не существует встроенного-в реализации, которая позволила бы вам динамически использовать свойства или методы класса .NET (через Reflection или DLR), но есть некоторые довольно надежные реализации от сообщества.Это обсуждалось в еще одном вопросе SO до .
. Существуют также реализации ?
, которые позволяют получить доступ к некоторым распространенным источникам данных, таким как базы данных SQL.Например, эта статья MSDN включает в себя определение, которое позволяет написать db?Query?Foo(1)
для вызова хранимой процедуры с именем Foo
.
Для различных других типов (таких как поиск элемента вXAML или доступа к элементам или атрибутам в документе XML), определение ?
довольно просто написать.