DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#とC++、新しくはじめるならどちら?

環境/言語:[win2000]
分類:[.NET]

お世話になります。

VBについての質問ではないので...。
もしこの掲示板でご質問するのが不適切な質問でしたらもうしわけありません。

VisualBasic.NETでオブジェクト指向プログラミングの雰囲気をつかんだので、
新しく、VisualC#またはVisualC++をはじめようと思っています。
とりあえず、手元にあるVisualBasic.NETで作ったアプリケーションを
VisualC#またはVisualC++で作り直してみることからやってみようと思っています。

どちらにしようか考えているのですが、この2つは、
開発者、配布先にとっての使いやすさという点で、どこがどう違うのでしょうか?
VisualC#のほうが新しいだけと考えてよいのでしょうか?

また、VisualC#.NETの初級本は読み通し、ざっと感触をつかんだのですが、
実際に自分でコーディングするときに参考にする
サンプルコード集のようなものが手元にありません。
初級から中級の上ぐらいまでの開発者が使える
VisualC#、VisualC++用のサンプルコード集のようなもので、何かお勧めはありますでしょうか?
(VisualBasic.NETのときは、秀和システム「VisualBasic.NET逆引き大全500の極意」という
ミニサンプルコード集のような本を参照しながら学習していました。)
ネットにあるものでも良いのですが、できれば書籍で、と考えています。

ご回答いただけるとうれしく思います。
何卒よろしくお願いいたします。
> VisualC#またはVisualC++で作り直してみることからやってみようと思っています。
>
> どちらにしようか考えているのですが、この2つは、
> 開発者、配布先にとっての使いやすさという点で、どこがどう違うのでしょうか?
> VisualC#のほうが新しいだけと考えてよいのでしょうか?

どちらかといえば、まったく別の言語と考えた方がよいでしょう。

> また、VisualC#.NETの初級本は読み通し、ざっと感触をつかんだのですが、
> 実際に自分でコーディングするときに参考にする
> サンプルコード集のようなものが手元にありません。

C#とVB.NETはほとんどの面で単純に記述が違うだけです。
#深くやりこんでいけば、違うところもたくさん見えてくるでしょうけど、
#簡単なプログラムなら違いはまさに文法だけといったところです。

まずは文法の違う部分から調べてみるとよいのでは?
ここの.NET プログラミング TipsにもVB.NETとC#の文法比較もありますね。
■No2477に返信(Ken-Koさんの記事)
> お世話になります。
>
> VBについての質問ではないので...。
> もしこの掲示板でご質問するのが不適切な質問でしたらもうしわけありません。
>
> VisualBasic.NETでオブジェクト指向プログラミングの雰囲気をつかんだので、
> 新しく、VisualC#またはVisualC++をはじめようと思っています。
> とりあえず、手元にあるVisualBasic.NETで作ったアプリケーションを
> VisualC#またはVisualC++で作り直してみることからやってみようと思っています。
>
> どちらにしようか考えているのですが、この2つは、
> 開発者、配布先にとっての使いやすさという点で、どこがどう違うのでしょうか?
> VisualC#のほうが新しいだけと考えてよいのでしょうか?
>
> また、VisualC#.NETの初級本は読み通し、ざっと感触をつかんだのですが、
> 実際に自分でコーディングするときに参考にする
> サンプルコード集のようなものが手元にありません。
> 初級から中級の上ぐらいまでの開発者が使える
> VisualC#、VisualC++用のサンプルコード集のようなもので、何かお勧めはありますでしょうか?
> (VisualBasic.NETのときは、秀和システム「VisualBasic.NET逆引き大全500の極意」という
> ミニサンプルコード集のような本を参照しながら学習していました。)
> ネットにあるものでも良いのですが、できれば書籍で、と考えています。
>
> ご回答いただけるとうれしく思います。
> 何卒よろしくお願いいたします。
>
VB.NETとC#はほとんど変わりません。
表記方法が少し違うだけで、流れはまったく同じといってよいでしょう。
VB.NETが使えるならC#を使う意味はほとんどありません。
ですから、僕としてはC++を勉強になることをお勧めします。
ただし、C++はC#より断然難しいですよ〜〜。

ちなみに、「VisualC#.NET逆引き大全500の極意」という本がありましたね。
よねKENさん、りょうさん、お忙しいところをありがとうございます。

こちらのウェブサイトで VBとC#の比較サンプルなども読ませていただいてます。
(管理人さん、貴重な資料をありがとうございます)
「C#ならイケるんじゃないか」と思えるようになったのも、
こちらのホームページの影響が大きいです。

VB.NETからの近さで言えば、C#のようですね。
VisualC#はVB.NETに近い、VisualC++はC++に近いということなのでしょうか?
(何も知らないので、あまりにもフザけた発言でしたらお許しください)

ところで、「VB.NETが使えるならC#を使う意味はほとんどありません」
とのことですが、私は、単純に"C"と名がつくのならばVBより速いのだろうと
思っていました。そういう認識は間違いなのでしょうか?
マネージコードを書くならC#をお勧めします。
マネージドC++はどちらかといえば、すでにC++を使って開発を行っている開発者を対象としているようなところがあり、多くのマネージC++についての解説ではすでにC++を知っていることを前提に書かれているものが多々見受けられます。ですがプラットフォーム呼び出しや、.NETでサポートされていない機能(たとえばグローバルフック。私はこの機能を.NETとプラットフォーム呼び出しだけで実現しようとして1ヶ月を無駄にしました)をネイティブなDLLで作成し、それをアセンブリからプラットフォーム呼び出しによって使用するときにはC++の知識は大いに助けになります。

> > ところで、「VB.NETが使えるならC#を使う意味はほとんどありません」
> とのことですが、私は、単純に"C"と名がつくのならばVBより速いのだろうと
> 思っていました。そういう認識は間違いなのでしょうか?
コンパイルして出力されるILコードには言語による違いはありません(それが多言語開発のできる.NETの売りでもあります)。
またそのために配布先にとってはC#で作られたアセンブリであってもC++で作られたアセンブリであっても差異はないことになります(もちろんVBでも)。
> Codingslave さん

コメントありがとうございます。

ということは、同じものをC#で書き直すことがユーザさんにとってのメリットになるわけではないのですね。
「C#を使う意味はほとんどありません」の意味が分かりました。

マネージコード、グローバルフックについてもインターネットで調べてみました。
私はOSレベルのことは何も知らないのですが、とりあえず、こちらも当面不足に感じることはなさそうです。

というわけで、当面はもうちょっとVBの勉強をしようと思います。
この度は、みなさんありがとうございました。また何かありましたらよろしくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板