vb2005でのインスタンス生成についての質問

このQ&Aのポイント
  • vb2005でのインスタンス生成について質問があります。なぜ2回もNEW句を使用しなければならないのでしょうか?
  • また、x(0)やx(1)について、宣言とインスタンスの生成を同時にする方法はありますか?
  • 質問の内容は、質問文章中のvb2005でのインスタンス生成についての疑問です。
回答を見る
  • ベストアンサー

vb2005 インスタンスの生成について

vb2005で質問です Data.vbというグローバル変数を宣言しているモジュールファイルに以下の記述をします。   public x As SortedList(Of Integer, Integer)() = New SortedList(Of Integer, Integer)(1) {} 次にForm1.frmというファイルで、ある処理の中に以下の記述をします。  x(0) = New SortedList(Of Integer,Integer)  x(1) = New SortedList(Of Integer,Integer) ここで質問が2つあります。 1)なぜ2回もNEW句を使用しなければならないのでしょうか? 2)x(0)やx(1)について、宣言とインスタンスの生成を同時にする方法はありますか? ご回答よろしくお願い致します。

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

  • ベストアンサー
回答No.1

1)なぜ2回もNEW句を使用しなければならないのでしょうか? xはSortedListの配列の為、入れ物の為に一度newして、その後、中身を作ることになります。 大箱の中に、小箱を2つ作る的な。。。 2)x(0)やx(1)について、宣言とインスタンスの生成を同時にする方法はありますか? 以下のような記法が使用できます。 Public x As SortedList(Of Integer, Integer)() = New SortedList(Of Integer, Integer)() {New SortedList(Of Integer, Integer), New SortedList(Of Integer, Integer)}

関連するQ&A

  • vb2005 インスタンスの生成について

    vb2005で質問です Data.vbというグローバル変数を宣言しているモジュールファイルに以下の記述をします。   public x As SortedList(Of Integer, Integer)() = New SortedList(Of Integer, Integer)(1) {} 次にForm1.frmというファイルに、あるイベントのたび、呼び出される処理の中に 以下の記述をします。  x(0) = New SortedList(Of Integer,Integer)  x(1) = New SortedList(Of Integer,Integer) この場合、何度も x(0) = New SortedList(Of Integer,Integer) が 生成されることになりますが、メモリエラーを引き起こす原因に なりえますか すいませんが、教えていただけないでしょうか

  • コレクションを配列にして利用する方法について

    以下のソースがあります。 Dim aa As New SortedList(Of Integer, Integer) この aa というコレクションを aa(1) や aa(2) といったように利用するには どのように宣言したらよいですか。 基本的な質問で申し訳ありませんが、宜しくお願いします。

  • 《instantiate》(インスタンス化)と《create》(生成)

    《instantiate》(インスタンス化)と《create》(生成)が分かりません。 《instantiate》(インスタンス化)は、必要とする側の分類子の操作が、必要とされる側の分類子のインスタンスを生成することを示す。と書かれています。 《create》(生成)は、必要とする側の分類子が、必要とされる側の分類子のインスタンスを生成することを示す。と書かれています。よく分かりません。 JAVAでコーディングするとどのような感じになるのでしょうか? instantiateで検索していたら以下のようなコーディングが見つかりました。 public static class Commands { static Commands() { CloseCardCommand = new Command("CloseCard"); AddCardCommand = new Command("AddCard"); } public static Command CloseCardCommand { get; private set; } public static Command AddCardCommand { get; private set; } } このコーディングで、どのような処理をしているかも分かりません。 必要とする側の分類子の操作とは、Commandsでしょうか? 必要とされる側の分類子とは、CloseCardCommandとAddCardCommandでしょうか? 《create》(生成)の場合、どのようなコーディングになるのでしょうか? コンストラクタで CloseCardCommand = new Command("CloseCard"); AddCardCommand = new Command("AddCard"); と書くのではなく、クラス内(コンストラクタやメソッドの外)に書くのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • ActionScript3.0(アクションスクリプト3.0)でMovieClipインスタンスを配列で生成する方法

    よろしくお願いいたします。 アクションスクリプト3.0において、あるMovieClipクラスから複数のMovieClipインスタンスを作り、それぞれを独立して制御させたい時に、 インスタンスを生成する際、配列でしようとしたのですがエラーとなりうまくいきません。 var my_mc[i]:MovieClip = new MC(); 上記の宣言を繰り返し処理により複数インスタンス生成をしようと思っていました。 MovieClipインスタンスを配列で生成する場合は別の方法があるのでしょうか?それともそもそもできないのでしょうか? また、MovieClipインスタンスをそれぞれ独立して制御させたい場合、別の方法などありますでしょうか? 以上、間違った表現等あるかもしれませんが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • C#でFormを同時に閉じることについて。

    あるForm2から呼び出したForm3があります。 Form2を閉じるとForm3も閉じられるプログラムを書きたいです。 インスタンスを与えれば簡単でしょうけど、Form2にはすでに別Formのインスタンスが与えられていて、複数個のインスタンスを同時に与える方法が分かりませんし、可能かも分かりません。まだまだプログラミングは浅くて…。 すでにthisで宣言したのでもう一個は何で宣言すればいいのかも分かりません。 public partial class Form2 : Form { Form1 frm1; public Form2(Form1 frm1) { this.frm1 = frm1; InitializeComponent(); } この他に、Form3のClosingイベントでForm2が閉じられたら同時に閉じるという方法も考えました。 Form3にはForm2のインスタンス、frm2は与えられています。 しかしif文の条件は、~==~、の形式になっていますが、Formが閉じたら…の書き方が分かりません。 frm2.Close() としても==がないですし、 Form2 frm2==frm2.Close() なども意味がありません。 どう書けばいいでしょうか? 無理もしくは面倒ならば仕方なくこのままでいきます。 結局何がしたいのかというと、Form3はForm2と連携しているため、仮にForm2を先に閉じてしまうとForm3はただ邪魔になるのです。 この際、自分でForm3を閉じればいですが、どうせなら自動でさせたいので。

  • [VB.NET] インスタンス生成とインテリセンス

    VB.NETの勉強をしつつ業務開発をしております。 現在、作成したクラスをインスタンス化した際、インテリセンスが表示されず、困っております。 メソッド内で生成したインスタンスからは、インテリセンスが表示されるのですが、クラス直下で生成したインスタンスでは、インテリセンスが表示されないのです。 Namespace MyName   Public Class Class1     Public Sub test1()       Debug.Print("test1呼び出し")     End Sub   End Class End Namespace Public Class Form1   Dim MyCls = New MyName.Class1 ←○MyNameのインテリセンスでClass1が表示   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     MyCls.test1() ←×MyNameのインテリセンスでtest1が表示されない     Dim MyCls2 = New MyName.Class1     MyCls2.test() ←○MyNameのインテリセンスでtest1が表示   End Sub End Class インテリセンスは表示されなくても、エラーにはなりません。自分で打ち込めば動作するのですが、共有利用したいので、インテリセンスの説明は表示させたいのです。 インテリセンスとは?というレベルから勉強している超初心者のため、拙い言葉遣いご容赦ください。お知恵をお借りしたく、宜しくお願いします。

  • Javaプログラミング インスタンス生成時の疑問

    現在Javaを学習中の者です。 一通り入門編を終えたところで、テトリス自作に挑戦している最中です。 // 利用クラスのインスタンス生成 block = new Block(); field = new Field(); gui = new GUI(field); proc = new Proc(gui, field, block); 本体Tetrisクラスのコンストラクタ内でこのような記述をしております。 ここで疑問に感じたのですが、例えばFieldクラスにguiオブジェクトを渡したいとなった場合、どう対処するのでしょうか。 field = new Field(gui); gui = new GUI(field); これではおそらくguiインスタンス生成前にオブジェクトを渡しているためおかしな事になってしまいますよね? 実際にやりたい訳ではなく、「こうしたいときどうすればいいんだろう」と思っただけなのですが、気になったので質問させて頂きました。 模索しながら作成中のため、記述自体に突っ込みどころがあるかもしれません…。

    • ベストアンサー
    • Java
  • VB2005で、フォームを初期化したいのですが、教えてください。

    VB2005で、フォームを初期化したいのですが、教えてください。 VB2005で、フォームにデータベース内容(ORACLE)を表示するプログラムを作っています。その際、F8キーを押すと画面内容(テキストボックスやDatagridviewの編集内容)を初期ロード状態に戻すようにしたいと思い、F8キー押下時のイベントに、以下のようにプログラムしました。 dim frm as form frm = new form1 me.close frm.show() としてみましたが、me.closeで、プログラムが終了してしまうようです。 どうするのが適切かお教えください。

  • VB.Netの大域変数

    VB6ではイベント制御のため、共通モジュールに大域変数を Public gFlag As Integer のように記述していました。 最近になってVB.Netをはじめましたが、この大域変数がうまく動いてくれません。 とりあえずVB6の共通モジュールはクラスを追加して行うとあり、 クラスを追加して、そこで上記のようにPublicで宣言しました。 ところがFormのコードで使うと宣言されていませんと出ます。 そこで色々と調べてPublicは外部に公開されるメンバ??らしい ということは分かったのですが、クラス自体さっぱりです。 とりあえずクラスのお勉強は後回しにするとして、 大域変数はどのようにすれば使えるようになるのか教えて下さい。

  • VBの宣言について

    ACCESS VBAをはじめて使っています。FORMのコードを読んでいるのですが、宣言されていない変数を見つけました。それでプロジェクト内で宣言されているかどうか探したら、標準モジュールの中で宣言されていました。VBは同一プロジェクトの中でpublicで宣言していればimportとかincludeとか何か取り込む宣言をしなくても自動で変数を認識してくれるのでしょうか?

専門家に質問してみよう