• 締切済み

VBは、コピペを繰り返して規定のオブジェクトをいじっていくもの?

VBは、コピペを繰り返して規定のオブジェクトをいじっていくもの? VBはクラスライブラリを、コピペを繰り返して規定のオブジェクトをいじっていくものですか? VBからフォームアプリケーションの作成を選ぶと、Form1というウィンドウが1つ生成されます。 これを規定のオブジェクトと呼んでいます。 その時点で、複数のオブジェクトがすでに存在しており、隠れて存在しています。 謎1)既に生成されている規定のオブジェクトはどうやって確認できる???    どんなオブジェクトが存在しているのか知りたい!!! オブジェクトに独自の値を持たせるには、インスタンス(実体化)して、 そのオブジェクトに値を入れていくのが、Visual Basicのプログラミング方法です。 どんな隠れオブジェクトが存在するかは、クラスライブラリを見て、使ってくれという感じです。 それでクラスライブラリには、(宣言)と(使用法)が載っていますが、 使うには、それに記載されているアセンブリのXXX.dllをimportsしてから、使用法のコードをコピペします。 ただ、(宣言)はなにに使うのか謎のままですが、 こうしてコピペを繰り返して規定のオブジェクトをいじっていく解釈で合っていますか? 謎2)クラスライブラリの宣言はいつコピペする??? ここでいう解釈は、Visual Studio 2005での開発としての解釈です。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.4

組み込みオブジェクトと、静的(static)メソッドがあります。 前者はプラットフォームが開始した時点で用意されているものです。 後者は静的なのでインスタンス化する必要がないものです。 何がどうと言うのは覚えていくしかないですね。慣れてしまうと、 「当然じゃん」というふうになってしまうので、今まであまり考えた ことがありませんでした。言われてみれば、なるほどの疑問ですね。

rescue99
質問者

お礼

ありがとうございます。 自分の疑問は組み込みオブジェクトと静的メソッドだということがわかりました。 一歩前進です。 あとは、アプリを作成で開始されたForm1で立ち上がるときに、 どの組み込みオブジェクトと、静的(static)メソッドが生成されているか知れば、疑問が晴れます。 どうやったら見れますか???本当に知りたいです・・

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

質問者は疑問(理論、根本)を納得しないと気がすまない心根の人のようですね。本当はこういう態度が学問や自分自身の勉強などの発展の基になうものと思います。しかし学習当初からこの態度を貫くと、却って自縛的に学習が前に進まない(注)場合を自分も回りにも見てきました。 言いたいことは、判らないことは、とりあえずそのままにして、沢山のVBのプログラムを組み、機会があれば沢山の解説本・雑誌やWEB記事(オブジェクト化を中心に)を読み、また本件の疑問にもどってくるのはどうですか。ある記事に接して長年の疑問が「ああそうだったんだ」となる場合が有るが、その説明記述が旨かったと言う場合も有るし、自分が、経験(他の事項のことが多い)をつんで、そのレベルにたどり着いたということの方が多いようです。 回答がこのコーナーに上がっても、文章では(回答者には当たり前の難しい用語なども見え隠れして、)十分理解出来ない場合が多いと思います。 >隠れて存在しています、ものを必要が無いと思われる時点で暴こうとするとこの精神に反します。 ーー 私でも言えることは、当面必要の無い部分は、隠したままにして、労力をそこに向けないで、能率化を測ろうという諸言語の態度です。 カプセル化(情報隠蔽)? ーー (注)世に言う数学嫌いなども、そういう心性の方が陥りやすいのではないでしょうか。こんなもの勉強しても何の役に立つの、という本質論とか、そうする(例えば方程式を立てる)理由が判らないとか、1+1はなぜ2になるのかとか考えてしまって、普通は十分説明されないものだから、学習者は興味を失っていくなどを連想します。 学校成績のよいのは、公式を適当に理解し、すばやく問題に当てはめられて解ける能力のある人ですが、練習問題を解くうちに判ってくる根本事項もある。

rescue99
質問者

お礼

ありがとうございます。 まさにズバリその通りです・・・ 自分が書いたコードが汚く見えます。 なので、慎重に慎重に初期の段階では綺麗なコードを書くように努めます。 しかし!! ひとたび、問題が発生して修正すると、修正した部分はものっすっごく汚いです。 小学生かと思うような問題箇所の修正です。 そんな自分が嫌なのでしょう。 効率化ってなんだろう・・・

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

>コピペ 違います。 ご自分でも言っておられるように、「インスタンス化」なんです。 インスタンス化はコピペではありません。クラス⇔インスタンスの 関係を理解すればコピペでないことは分かると思います。 実例を挙げると、Integer,Double のメンバからなるクラスを考え ます。データ量は4+8で12バイトです。このクラスをインスタンス化 するとはヒープから空きメモリを12バイト取得し、そのポインタを 変数に与えることです。この時、コピーなどは行われません。 宣言はオブジェクトがどこにあるかを示すためにあります。 宣言しないでも分かるところにあるオブジェクトは宣言なしでも 使えますが、そうでない所にあるオブジェクトは場所を教えてあげる 必要があるからです。

rescue99
質問者

お礼

インスタンス化した覚えがないものを急に使われ出すことが理解できません。 自分がForm1を立ち上げたときに、どんなインスタンスが既に存在するのか知りたいです。その手立てはありますか?

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

コーディング作業の点から言えば、まさに 「VBは、コピペを繰り返して規定のオブジェクトをいじっていくもの」 ですね。 まあ、オブジェクト指向の言語なら、クラスライブラリーにあるオブジェクトを自分用にインスタンスしてコンストラクターを実行し、プロパティやアトリビュートをセットするというやり方はみな同じです。 謎1の、Form1を作ったとき 既に生成されている規定のオブジェクトって具体的にどれの事ですか? 謎2)クラスライブラリの宣言はいつコピペする??? それって、参照設定の事ですか。

rescue99
質問者

お礼

ありがとうございます。 規定のオブジェクトは目に見えているオブジェクトです。 フォームとForm1のプロパティだけ? 目に見えないオブジェクトはExceptionとか、Errとか突然コードに登場するオブジェクトのことです。 規定のオブジェクトと命名したのは自分なので・・・あまり深く考えないでください。 Textとかなら、Textオブジェクトを作って、そこに文字列を付けて目に見えるように自分でしていますが、自分が生成してないのに、いきなり得体の知れないオブジェクトに値を代入する。 Err.とか作った覚えがないものが、急に使われだす意味がわかりません。 参照設定はアセンブリのimportsを省くだけだと思っています。 クラスライブラリに宣言と使用法って載ってますよね? それの宣言に書かれているソースをいつForm1にコピペするのかなと思った次第です。

関連するQ&A