VB.NET で C# の dynamic
機能を実現する (オプション Strict On)
C# の dynamic
キーワードは、コンパイル時の型チェックをバイパスして、実行時の型の柔軟性を提供します。 VB.NET には直接相当するものがありません。 Option Strict On
(VB.NET のタイプセーフなデフォルト) でこの動作を模倣するには、別のアプローチが必要です。 Option Strict On
は、コンパイル時に判明する明示的なデータ型宣言を必須とします。
Option Strict On
を維持する完全に同等なものはありません。 最も近いアプローチには、インターフェイスと遅延バインディングの使用が含まれます。 これには、動的に型付けされたオブジェクトに対して実行する一般的な操作を表すインターフェイスの定義が含まれます。 その後、インターフェイスを使用して、実行時にオブジェクトを操作できます。
例:
<code class="language-vb.net">Option Strict On Interface IDynamicObject Function DoSomething(param As String) As String End Interface ' ... later in your code ... Dim obj As IDynamicObject = GetDynamicObject() ' Function that returns the actual object Dim result As String = obj.DoSomething("test") Console.WriteLine(result)</code>
GetDynamicObject()
関数は、実行時に実際のオブジェクトの作成と型チェックを処理します。 このアプローチでは Option Strict On
は維持されますが、より多くの事前設計が必要となり、実行時のオーバーヘッドが増加する可能性があります。
Option Strict Off
を使用すると (原文で示されているように)、より簡単ですが安全性は低くなります。 Object
として宣言された変数に異なる型を割り当てることはできますが、これによりコンパイル時の型の安全性が失われ、実行時エラーのリスクが増大し、コードの保守性が低下します。 したがって、VB.NET で動的な動作を目指す場合は、インターフェイスのアプローチがより複雑ではありますが、タイプ セーフの観点から一般に好まれます。
以上が「Option Strict」を有効にして、VB.NET で C# の「動的」キーワード機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。