3

私は長い間 VB.NET 開発者であり、最近 C# に切り替えました。組み込みの VB.NET 関数 (.NET が 6.0 および BASIC 自体よりも前のもの)String.Leftの一部Right( .SaveSettingsGetSettings

私がしたことは、同じソリューションで VB.NET を言語として新しいプロジェクトを作成し、基本的に VB.NET で利用できる必要なすべての機能を再作成することでした。そして、それを今書いている C# コードに呼び出します。

.NET でコードをコンパイルすると、ほぼ同じ CIL になるため、コードを記述した言語や、C# と VB を混在させるかどうかは、パフォーマンスの面では問題になりません。

私は間違っていますか、それとも正しいですか?

ありがとう

4

4 に答える 4

12

という名前の名前空間がありMicrosoft.VisualBasic、C# プロジェクトでも使用できます。

string test = Microsoft.VisualBasic.Strings.Left("abc", 2);

Microsoft.VisualBasicプロジェクトの参照に追加することを忘れないでください。

于 2012-04-28T02:23:10.773 に答える
1

それをビルドしてから、reflector/ilspy/whatever を使用して C# に逆コンパイルすることをお勧めします :)

于 2012-04-28T02:33:19.827 に答える
0

名前空間を使用することMicrosoft.VisualBasicは良い解決策ですが、VB.NETには同等の機能があります(ただし、文字列関数は1ベースではなくゼロベースです)。

        string str = "abcdefg";

        string left  = str.Substring(0, 2);                // Left(str, 2)
        string right = str.Substring(str.Length - 2, 2);   // Right(str, 2)

ところで、レジストリアクセス方法はMicrosoft.Win32名前空間にあります:RegistryKeyなどを参照してください。

于 2012-04-28T04:56:58.687 に答える
0

私の経験では、それはほぼ完全に、言語に対する好みと経験の問題でした。どちらの言語も、IL を生成し、CLR をターゲットにすることを目的として構築されています。

ある言語で完全にサポートされている一部の機能が別の言語ではサポートされていないため、言語を選択する際には、他にも議論の余地のある考慮事項があります。また、一部の言語は、数学計算用の APL など、特定の目的に対してより表現力豊かです。

于 2012-04-28T02:32:21.723 に答える