質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • C#

    7421questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • .NET Framework

    479questions

    .NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

  • VB

    309questions

    VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

C#勉強に当たって

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,177

ranran

score 122

お世話になります。

vbプログラマでありますが、C#も使用できるように勉強したいと思っています。
そこで学習するに当たり、vbとC#の違いで押さえておいたほうがいいこと等ありましたらご助言ください。

よろしくお願いいたします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

同じようにVB.NETからC#に移行した人間です。
bigfatratさんも言ってますが、言語自体は相当思想が似てるので、覚えるのは大変じゃ無いと思います。

私が感じた違いと言えば、VB.NETは相当「おおらか」な言語です。
変数の宣言や、変数の型、スコープについてものすごくおおらかなので、C#に移行する時にはそこがものすごく手間に感じると思います。

特にVB.NETで普通にプログラムされるレベルになってると変数の型については相当悩まされるんじゃ無いかと思います。
わかりやすく言えば「この命令(関数・メソッド)での入力はstringなのでintは直接渡せないからキャスト(型変換)する」って奴ですね。
VB.NETでは相当なレベルでキャストを自動でやってくれます。
これがやりやすくも有り、誤解を承知で言えば「雑な」プログラマを量産する原因になってると思いますw

結局VB.NETだけで完結するならそのままで良いと思います。

ですが、結局他の言語のライブラリを利用したり、VB.NETでは速度が出ないとか、ライブラリがC++でしか扱えないからとかなったときに苦労する事になるのでは無いでしょうか?

勝手にVB.NETだと思ってましたが、VB6だったとするなら、この際、C#に移行するべきでしょうね。

私は1日2日、その都度、VBではこう書くのをC#ではどうやるのか?を調べてたら後はそのまま想像がつくようになってましたよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/02 15:35

    回答ありがとうございます!
    > VB.netでは相当なレベルでキャストを自動でやってくれます。
    その事実に驚きです
    String型を仮引数にもつ関数にint型を引数で普通に呼び出せました(^^;
    今後とも型には注意したいと思います。

    今触れているプロジェクトにおいてC#に触れる機会が多々あるのでこの機会にコーディングできるようになろうと思います!

    ありがとうございました!

    キャンセル

0

VBとC#で実現可能な事はほとんど同じ、って言う所くらいでしょうか。
記述方法はかなり異なるのですが、覚えてしまえばC#の方がコーディングしやすいと言う人が多いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/02 15:20

    回答ありがとうございます。
    VBとC#、記述の仕方が違うだけでかなり近しいものを感じました
    C#を使えた方がいいと周りから言われるのでこの機会に学習しようと思います!

    キャンセル

0

個人的には、VB.NET の方にはVB6ユーザ向けの互換機能が豊富に含まれていて、C# の方はほとんんどない、という点が一番大きな違いに感じられました。

この違いは、VB.NET にはある何かを、C#でどうやるんだろう? という疑問が湧いた時に調べにくい(存在しない機能を調べるのは難しい)という問題になります。

DOBON.NET というサイトの記事が、そういうVB.NET とC# の違いについて詳しく解説される傾向があり、自分はこのサイトに助けられました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/02 15:47

    回答ありがとうございます。
    私自身、vb6に触れたことがないので互換機能はわからないですが
    そのような違いもあるのですね。
    vb6プログラマの方にも受け入れやすいよう、移行しやすいよう互換機能が豊富なのかなと感じました!

    DOBON.NET サイト名までは意識したことがありませんでしたが、私も何度もお世話になっています♪
    内容も豊富で、説明もわかり易く助かっています(^^)

    キャンセル

同じタグがついた質問を見る

  • C#

    7421questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • .NET Framework

    479questions

    .NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

  • VB

    309questions

    VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

閲覧数の多いC#の質問