Студопедия
rus | ua | other

Home Random lecture






Ориентация на несколько версий инфраструктуры


Date: 2015-10-07; view: 424.


Более совершенные необязательные параметры

Необязательные параметры очень удобны для создания более гибких методов и избавляют от засорения класса бесчисленными перегруженными версиями какого-либо метода. Одно из ограничений в прошлом — необязательные параметры не могли быть равны null (или любым типом невстроенной структуры). Visual Basic 2010 теперь позволяет определять необязательные параметры любого значимого типа:

Sub DisplayOrder(ByVal customer As Customer,

ByVal orderID As Integer,

Optional ByVal units As Integer? = 0,

Optional ByVal backgroundColor As Color = Nothing)

End Sub

В этом случае units имеет тип Nullable(Of Integer), а background­Color является типом невстроенной структуры, но их все равно можно использовать в качестве необязательных параметров. Visual Basic 2010 также обеспечивает улучшенную поддержку необязательных параметров, которые являются обобщенными.

 

Самое впечатляющее во всех средствах Visual Basic 2010 заключается в том, что вы можете использовать их даже в проектах, ориентированных на .NET Framework версий 2.0–3.5. Это означает, что неявное продолжение строки, литералы массивов, инициализаторы наборов, лямбды выражений, автоматически реализуемые свойства и прочее будут работать в существующих проектах без переориентации на .NET Framework 4.

Одно исключение — Embed Interop Types, который зависит от типов, присутствующих только в .NET Framework 4; в итоге этим механизмом не удастся воспользоваться при ориентации программы на .NET Framework версий 2.0–3.5. Кроме того, типы, помеченные как вариантные, поддерживаются лишь в .NET Framework 4, поэтому в предыдущем примере вам придется по-прежнему вызывать .Cast(Of T), если ваша программа рассчитана на версии 2.0–3.5. Однако в этом случае вы можете создать собственные вариантные типы (используя модификаторы In и/или Out).

Чтобы сменить текущую целевую инфраструктуру для приложения, дважды щелкните My Project, откройте вкладку Compile, щелкните Advanced Compile Options, а затем выберите нужное из поля с раскрывающимся списком внизу.

Но при компиляции из командной строки вы не найдете соответствующего ключа. Вместо этого компилятор анализирует, какие сборки предоставляют определение System.Object (обычно mscorlib) и на какую инфраструктуру они рассчитаны, а затем просто «ставит штамп» в вашей выходной сборке. (Такой же механизм используется компилятором при создании сборок для Silverlight.) При работе из IDE все это происходит прозрачно, так что это не та проблема, о которой вам стоит беспокоиться.


<== previous lecture | next lecture ==>
Исполняющая среда динамических языков | Basic decision – making units.
lektsiopedia.org - 2013 год. | Page generation: 0.013 s.