0

コードの一部またはプロジェクト全体を VB.NET から C# に、またはその逆に変換する必要がある場合があります。残念ながら、固有の言語の違いにより、コード変換が自動的に行われないことがあります。たとえば、 yieldは C# で使用可能で VB.NET では使用できない、またはその逆のXML リテラルは VB.NET で使用可能で C# では使用できないなどのキーワードを参照しています。

私の質問は、.NET プロジェクトを作成するときにソース コードの移植性を考慮したことがありますか、それとも言語固有の機能を十分に活用していますか?

4

8 に答える 8

2

なぜ言語を変換したいのですか?これらは 2 つ以上の .NET 言語であり、F# などのように大きく異なるものもあります。

適切な仕事には適切な言語を使用してください。.NET では多くの場合、C# または VB のいずれかになりますが、他の (C++/CLI や F# を含む) の方が簡単なことがたくさんあります。

もちろん、1 つのプロジェクトで複数の言語を使用することも、同じアセンブリで使用することもできます (ただし、VS では直接サポートされていません)。

于 2009-02-18T10:32:53.810 に答える
1

リンクするだけなので、移植可能な .NET コードを書く意味がわかりません。したがって、別の .NET 言語に移植する時間の 99% は無意味です。コードを抽出し、DLL にしてリンクするだけです。

于 2009-02-18T10:35:54.393 に答える
1

私は言語固有の利点を最大限に活用しようとしています。他のすべてのことはばかげているでしょう(私の本では)。私の仕事は、自分のツールを最善の方法で使用して作業を完了することです。そして、プログラマーとしての20年間、プログラムを別の言語に変換する必要はありませんでした(同じ言語の異なるバージョンからのみアップグレードしてください)。

C# と VB.Net が互いに簡単に移植できるようになった今、おそらくそれは変わるでしょう。C# には他にも興味深い例があるため、C# の例/プロジェクトを VB.net に変換することがよくあります。

于 2009-02-18T10:40:31.327 に答える
1

言語固有の機能を最大限に活用します。c# 、 f# 、または他の clr 言語から vb アセンブリを呼び出すのが非常に簡単な場合、言語間で移植する機能が非常に重要だとは思いません。

提供される機能を使用しないのに、わざわざ別の言語を使用する理由がよくわかりません。VB.Net で利用可能な機能のみを使用する場合、なぜ C# に切り替えるのでしょうか?

于 2009-02-18T11:00:11.810 に答える
1

私はいつも C# でコードを書いていますが、VB の構文と冗長さが嫌いです。C/C++ の世界から来たせいか、C# の方が正確で簡潔だと思います。

しかし、プロジェクトを言語から別のプロジェクトに変換する必要があるような問題に直面したことはありません。C# または VB.NET (またはその他のもの) で記述されたコンパイル済みの .NET アセンブリは、すべての .NET プロジェクトで使用できることを忘れないでください。

于 2009-02-18T10:28:08.610 に答える
1

いつか別の言語に移植したいという理由だけで、言語の使用を制限することは決して考えません。それは私の生産性を低下させ、可能性が低い将来への投資を意味します.

.NET アセンブリは交換可能であるため、特に .NET 言語についてはそうしません。

コードを移植する必要があることが事前にわかっている場合は、移植先の言語で直接コードを記述します。

于 2009-02-18T10:30:25.140 に答える
1

いつでもフルアドバンテージ。アセンブリ内のパブリック型が CLS に準拠したままであることを確認しようとしていますが、それは限界です。私は C# の領域にとどまる傾向がありますが、VB はレイト バインド COM のサポートが優れている (または持っていた) ため、扱いにくい C++ ライブラリと相互運用する場合は C++/CLI が不可欠です。

構文ではなく機能に基づいて言語を選択すると、いずれにせよ変更される可能性は低くなると思います。

于 2009-02-18T10:35:11.447 に答える