• ベストアンサー

VB.NETとC#.NETの違いは何ですか?

VB.NETとC#.NETの違いは何ですか? .NET Frameworkのクラス、メソッド、プロパティ等が分かれば、 VB.NETもC#.NETも大して違いはないと聞きました。 一体どういうことでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 うむ、それに答えるにはまずMicrosoft社の.Net構想を説明せねばなるまいて。  Microsoftは1998年ごろ、C++とJavaを似せておいしい所取りをしたC#という言語と、Javaに似た中間言語(CLI)の構想を打ち出した。  それは、あらゆる言語で書かれたプログラムテキストを同一の構造を持ったプログラムバイナリー(中間言語)に変換(コンパイル)し、実行時にはどんなプログラミング言語を用いていたか関係なく同じように実行できる実行環境を用意するというもので、これをMicrosoft.Netといい、Microsoftが用意した共通ライブラリー&実行環境を.Net Frameworkという。  この、.Net Frameworkなる共通ライブラリー、例えばStringクラスであったり、Windowsの窓を操作するクラスであったり、レガシーVB(VB4~VB6)とぱっと見が似ているVBライブラリーであったり、これらのクラス群をあらゆる言語から使えるように、という構想だ。もちろんコンパイラーは.Net Framework用に作成されたものを使う必要がある。  MicrosoftはC++、C#、Basic(VB)、J#(Java)、F#(Fortranに似た言語)の5言語のコンパイラーを提供しているけど、他の会社やコミュニティーがPascalやpythonに似た言語など、他のプログラミング言語用のコンパイラーを提供し、それらは全て上記で説明した.Net Frameworkのライブラリーを呼び出す事ができる。  C#からMicrosoft.VisualBasicパッケージのライブラリーも呼び出せるので、言語仕様だけがC++言語風で、でもやってる事は100%VBだって言う事もできる。  Microsoft.Net 1.0の頃はBasic言語はルートパッケージを作る事が出来なかった(プロジェクト名がパッケージ名の先頭になり、プロジェクトのプロパティーでパッケージ名を空っぽにする事はできたけど予期しない動作になったりする)など、若干C#が優遇(と言うか前述の通り.Net Frameworkは元々C#言語+中間言語の構想で、Basic言語を相乗りさせた形になる)されている感はあったけど、今ではそんな事もない。  つまり、あらゆる言語で同じプログラムを書くことができる、と言うのがそもそもの.Net Frameowrkの中間言語構想なので、VBとC#で使えるライブラリーが同じなのでVB.NETとC#.NETは文法以外に違う事が無いと言える。それが、質問者が記述した内容そのものだという事なのですよ。

関連するQ&A

  • VB.NETで出来てC#で出来ない???

    VB.NETでは出来るのにC#で同じようにするやり方がわからなくて困っています。 VSのバージョンは2008です。 やりたいことは 『param.Item("AAA") = "111"』 このように書けるクラスを作りたいのですが、 VBで出来てC#では出来ないのでしょうか? イメージとしてはプロパティにメソッドをくっつけたようなクラス? C#ではこのように書くとエラーになります。 どのようにしたらいいでしょうか? public string Item(string Key) {  set { _param[Key] = value; } } VB Dim param As New Param() param.Item("AAA") = "111" ----Paramクラス---- Imports System.Text Public Class Param Private _Hash As New Hashtable Default Public Property Item(ByVal Key As String) As String Get Return _Hash(Key) End Get Set(ByVal value As String) _Hash(Key) = value End Set End Property End Class ---------

  • vb.netとVB6の違いはフレームワークを使うかどうかでしょうか?

    vb.netとVB6では文法も違いますが 最大の違いは vb.netはフレームワークを使う という認識であってますか?

  • VB.NETとC#の違い

    JOBで使用する開発言語をVB.NETにするかC#にするかで迷っています。 画面アプリと裏タスクという構成ですが、 今までは画面=VB、裏タスク=Cという固定概念でしたが、このままでよいのか疑問です。 下記は私なりに調べてみた比較なのですが、 ●従来Cの短所とされてきたこと ・画面設計のし易さ  C#はVBと同じようにVisualStudio上で簡単に設計できる。イベントドリブンも可能。 ・言語のとっつき易さ C#でASPを組んだ経験もありますので大して抵抗はありません。                しかも、VB6.0→VB.NETの移行は従来のVB5.0→6.0へ移行ほど安易ではない。 ●従来Cの長所とされてきたこと ・処理速度     VB.NETと差が無いような記事も見たことがあります。 こう考えるとC#とVBの差が、どんどん縮んできており、長所短所を見出すことができません。 いったい違いって何でしょうか、ご存知の方、ご教示いただきたくお願いいたします。

  • VB6のコードをC#にしたい

    C#はこちらでよかったでしょうか。。カテゴリ違いだったらすみません。 現在、VB6にて書かれているコードを、C#にて置き換える事になりました。 しかし私はまともなオブジェクト指向の言語で組むのも初めてなら、C系の言語で組むのも初めてで、そこでどうすればいいのか困っています。 VB6で sub aa(i as integer)      dim obj as object   call bb(obj,i)   call obj.run()    end sub    sub bb(byref pobj as object,i as integer)      select case i    case 1:     pobj = new obj1    case 2:     pobj = new obj2   end select    end sub    といったようなコードがあります。obj1とobj2はVBのクラスなのですが、メソッドはどちらも同じrunというものが用意されているとします。 ようは引数の値によって、メソッドやプロパティの形は同じだけれど、メソッドの中身が違うクラスをもらって、そのもらったクラスのメソッドを実行したいわけです。 しかしC#でまったく等価のソースをかくと、当然ながらobjはただのobject形なので、そんなメソッドはないとおこられてしまいます。VB6の場合、そのあたりが厳密でないので許されていたのですが。。。 こういった場合、どのようにソースをかけばいいのでしょうか? やはりobj1,obj2のクラスの方に工夫しないといけないでしょうか? 実はこのオブジェクトを用意しているのが別チームの為、その場合こうしてくれと提案しなくてはなりません。もしそれがなくても可能であればそれにこした事はないのですが。。。 いちおうもらったクラスのタイプをしらべて、それごとにコードをかくという方法は思いついたのですが、それだとobj1、obj2にあたるクラス数が実は種類がたくさんあり、そこだけならまだしも、他にも同じようなコードをたくさんかかなくてはいけなくなってしまいます。 もう少しスマートにするにはどのようにすればいいでしょうか? こういうクラス構成にすれば、とか教えていただければ助かります。

  • VB6.0 VB.NET2003とのクラスの違い

    こんにちは VB6.0でデータベースのソフトを作成しています。 当初VB6.0はVB.NETと違い完全なオブジェクト指向言語ではないと聞いていたので、 フォームの画面ごとに検索、追加、更新、削除、入力チェック,印刷のコードを書いていこうとしました。 しかし、最近そうでもないことがわかりました。 そこで、画面ごとではなく機能ごとに検索、追加、更新、削除、入力チェック,印刷のクラスモジュールをつくり、 どこに何が書かれているかわかるようにコーディングしたいと思います。 VB.NET2003は学生のころやっていたのですが、VB6.0は最近やりだしたのでよくわかっていません。 VB6.0の入門書をみてもクラスについては2~3ページしか触れていません。 VB.NET2003にはできるがVB6.0にはできないクラスの大きな違いを教えてください。 いまのところコンストラクターとオーバーロードはできないということだけわかっています。

  • VB.NETとC#はどのぐらい違いますか?

    今まで、VB.NET2003でWebアプリケーションの開発をしてきたのですが、客先が代わり、C#でWebアプリケーションの開発することになりそうなのですが、VB.NETとC#でどのぐらいちがうものなのでしょうか? 基本的にASP.NETであることにかわりがないので、 文法上の違いレベルなのかなーとおもっているなのですが、どうでしょうか?

  • VB.NETのクラスプロジェクトのメソッド等をC#側で利用

    VB.NETのクラスプロジェクトのメソッド等をC#側で利用したいのですが、 参照設定に追加しても使用できません。 C#で使用することは無理なのでしょうか?

  • ASP.NETとVB.NETの違いってどの様なものでしょうか?

    ASP.NETとVB.NETの違いってどの様なものでしょうか? 下記、IT用語辞典のewordsから転用ですが。。良く分からないです。 どなたかご教授頂ければ幸いです。 ASP.NET .NET Frameworkで提供されるWebサービス向けのクラスライブラリ。Windowsサーバ上でダイナミックなWebページを動作させるための基盤となるソフトウェアで、WebアプリケーションやWebサービスの開発・構築に用いられる。 VB.NET Mcrosoft社のプログラミング言語Visual Basicのうち、Microsoft .NET環境で動作するプログラムを開発するためのもの。2002年に発売された「Visual Basic .NET」以降の製品が該当する。Visual Basic 2005からは製品名から「.NET」が外されたが、以降の製品も.NET環境のための製品であり、VB.NETに含まれる。

  • VB6、VBA、vb.net

    この認識で合ってるか教えてください。 「VB6、VBAには.NET Frameworkは使われていないけど、 vb.netからは.NET Frameworkが使われている」 であってますか?ご回答よろしくお願いします。

  • VBとC#の違いって何?

    Visual Basic 2008 Express EditionとVisual C# 2008の違いって、 何ですか? MS社の記述では、 [VB] Windows アプリケーションの楽しく簡単な作成方法に興味を持つ、 趣味で開発を行うユーザー、プログラミング初心者、および学生に 最適な開発ツールです。 [C#] ダイナミックなアプリケーションを開発するための、 シンプルで楽しく、学びやすい開発ツールです。 .NET Framework 上で Windows 用アプリケーションを開発するときや、 オブジェクト指向を学ぶときに最適です。 と書かれているのですが、 機能数、不具合数はどっちが多いのでしょうか? VB,C#も同じ様なダイナミックアプリケーションを開発でき、 シンプルなのですが・・・。未だ区別が付きません。 C#の場合、フォーム等の詳細設定は出来ますが、 VBでは簡易設定のみ。 ソフトウェア開発をする場合、どっちが得をするのか? ↑の回答をお待ちしてます。

専門家に質問してみよう