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

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

新規登録して質問してみよう
ただいま回答率
85.48%
VB

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

C#

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

Q&A

解決済

3回答

6654閲覧

VB独自のMy.Computer.FileSystemクラスとは

nyahonyaho

総合スコア83

VB

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

C#

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

0グッド

0クリップ

投稿2017/02/14 00:07

VBで書かれた古い社内デスクトップアプリをC#で作り直してます。
そこでMy.Computer.FileSystemというファイルI/Oクラスが目につきました。
System.IOとの違いをググっても答えが見つかりません。
違いはなんでしょうか。また、あえてVBのdllをインポートしてMy.Computer.FileSystemを使う必要・価値はあるでしょうか?

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

もう回答が出ていますが。

違いはありません。要はVB*プログラマーのために用意されたエイリアス(ショートカット)集のようなものです。

閑話休題
C#と違ってVBは.NET Frameworkを使用した現在のVB以前にもWin32のネイティブなアプリをビルドする前身のVBがありました。
現在は.NET Framework版のものをVBと呼ぶようになってますが、.NET Frameworkが出た当初は古いVBと区別するためにVB.NETと呼んでました。(今でも呼ぶ人もいるかな)

んでこまることが、そう、古いVBで作られたものをVB.NET(現在のVB)に作り直す。まさに、質問者がやられている作業が発生します。そこで、古いVBのものをVB.NETに変換する際には当然ライブラリの差異の部分は自分で実装する必要があります。それを最小限にとどめるよう吸収するために作られたのがこのMy名前空間のライブラリなのです。冒頭のVB*はこの古いVBのことを言います。つまり、My名前空間のライブラリは.NET Frameworkライブラリを使用して古いVB言語仕様に名前空間を変換(エイリアス)したライブラリになります。今はありませんが、VB.NETが出た当初は、古いVBで作られたプロジェクトからVB.NETに変換するツールもVSに添付されてました。

話が長くなりましたがそういうものです。Microsoft.VisualBasic.dllをインポートすれば.NET Frameworkの他の言語でも使用することは可能です。Microsoft.VisualBasic.dllを使用すればシンプルなコードで済む場合もありますが、あえてこのライブラリをインポートして使用する必要は全くありません。逆に、使用しないほうを私は選びます。

参考
Micoro

投稿2017/02/14 00:57

編集2017/02/15 08:04
turbgraphics200

総合スコア4267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyahonyaho

2017/02/15 07:58

わざわざありがとうございます。作り直す元のソース見てみると、どうやらそれのバージョン1.0はVB6で作られたっぽいです。一度頑張って.net化したんだなぁと思っていますw
guest

0

ベストアンサー

vb6 などのソフトの移行や、vb6 に慣れた人向けのオブジェクトなんで、新規プロジェクトや c# しか使ってない人たちのプロジェクトで使う意味はありません。

投稿2017/02/14 00:17

takeshi

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyahonyaho

2017/02/14 00:25

ありがとうございます。職場の老人達をそれで説得してみます!
guest

0

VB6時代の話かと思ったら一応.NETなんですね。
My.Computer.FileSystem自体は良く知りませんが、既存システムと同じことを実現できるなら、今後のためにも今の技術で作り直した方が良いと思います。
古い技術をいつまでも使っていると、いざというときに足を引っ張られそうです。

投稿2017/02/14 00:22

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問