2012-03-15 2 views
0

私はC#と他のプロジェクトビルドVBでプロジェクト全体をビルドしていると私はこの2つのプロジェクトは相互に相互作用する必要があるので、このVBプロジェクトへの参照を作ったとしましょう。これは可能ですか?この2つのプロジェクトのコンパイルされたコードは一緒に暮らせるでしょうか?また、私は同じプロジェクトVBとC#をコンパイルされたバージョンは同じですか?VBのコンパイルコードはC#と同じですか?

+6

はい、すべての.NET言語は他の.NETアセンブリを参照できます。あなたはそれを試しましたか?実際の問題は何ですか? – ildjarn

+3

はい、あなたが** VB.NET **について話している限り。 –

+0

VBとC#の同じプロジェクトは、わずかに異なる方法でコンパイルされます。他のすべての要素が等しいとすると、アプリケーションの実行に違いはありません。実際のプロジェクト –

答えて

2

これらは両方とも中間言語(IL)にコンパイルされ、C#でVB.NETライブラリを使用できます(逆も同様です)。あなたは、私がお勧め両方の言語のコンパイルされたバージョンを調べたい場合は

あなたはILSpyダウンロード - あなたはそれを任意の.NETアセンブリを開くことができます。そこではなく、他に1から可能である小さな点がいくつかあり、いずれかでILは機能実装されていない:)

+0

+1の間で参照する前に – MarkJ

1

.NET/CLR中間言語を使用しています。 はILとも呼ばれます。

は executional結果は同じであり、C#とVBで書か

コード・プログラムは、得られたIL-コードが異なっていてもよいJavaのバイトコードに似ているが。

0

はい、異なる言語で書かれたプロジェクトを混在させることができます。

は、それがコンパイルされています一度C#とVBコンパイラプロデュースコードのソースコードから、ほとんどのコードは同じものになるかどうかで、いくつかの微妙な違いがあります。

例えば、これらの微妙な違いの1つはC#でのローカル変数が初期化されていないながら、VB内のローカル変数は、ゼロに初期化されることです。

0
  1. C#プロジェクト
  2. にソリューションエクスプローラを追加し、既存のプロジェクトを追加し、ソリューションエクスプローラでVBプロジェクト
  3. 右クリックソリューションの名前を追加し、既存のプロジェクトを追加し、ソリューションエクスプローラで、空のソリューション
  4. 右クリックソリューション名を作成します。 > VBプロジェクト>「マイプロジェクト」>参照>追加...ボタン>プロジェクト> C#プロジェクトを選択> OK

これで、他のプロジェクトのパブリックメソッドにアクセスできます。