VB.NET, эквивалентный для C#, 'динамичного' с Опцией, Строгой На

Есть ли эквивалент для C# 4 'динамическое' ключевое слово при использовании безопасного с точки зрения типов VB.NET, т.е. с Option Strict On?

73
задан Peter Mortensen 24 June 2017 в 17:20
поделиться

3 ответа

Эквивалентом является Object в VB.NET, но с Option Strict Off. С Option Strict On эквивалента нет. С другой стороны, ключевое слово dynamic привносит Option Strict Off эквивалентную функциональность в C#.

52
ответ дан 24 November 2019 в 12:23
поделиться

VB.NET всегда имеет встроенную «динамическую» функцию, первоначально называемую поздним связыванием. Этот синтаксис поддерживался вечно:

 Dim obj = new SomeComClass()
 obj.DoSomething()

Работал над кодом, реализованным на .NET и COM, последний был наиболее распространенным использованием. Ключевое слово dynamic в C # предоставило ему ту же возможность. Он был изменен в VB.NET версии 10, однако теперь он также использует DLR. Это добавляет поддержку динамической привязки к языковым реализациям, таким как Python и Ruby.

Синтаксис точно такой же, используйте ключевое слово Dim без As. Однако вам придется использовать Option Strict Off, Option Infer On может немного смягчить этот удар. Это действительно показывает, что использование C # определенного ключевого слова для обозначения динамической привязки было довольно хорошим ходом. Afaik все запросы сделать это в VB.NET также еще были рассмотрены, но не запланированы.

Если вы предпочитаете Option Strict On, то использование ключевого слова Partial Class, чтобы вы могли переместить часть кода в другой исходный файл, вероятно, является наиболее эффективным подходом.

38
ответ дан 24 November 2019 в 12:23
поделиться

Вы можете включить Option Infer On и Option Strict Off и все равно получить что-то очень близкое.

3
ответ дан 24 November 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: