• 締切済み

【VB2005】クラスを使用する時は、必ずしも「new」を付ける必要はない?

23歳男性です。 vb.netについて質問があります。 私は、「クラスを使用するときは必ず「new」をつけてインスタンス化しないとできない」と思っていました。(Shared以外) しかし!! DBに接続するとき、「SqlDataReader」クラスを使用するんですが、このクラスは「new」を使いません。 正確には、「使えません」。newを付けると、怒られちゃいます。 このことから、クラスを使うときは必ずしも「new」を使用しなくてもいいという考えにたどり着いたのですが、どうしてこのようなことが起こるのでしょうか? 説明できる方がいましたらご教授お願い致します。

みんなの回答

  • ainax
  • ベストアンサー率45% (5/11)
回答No.2

7行目訂正です。Shared付け忘れでした。しかもFunctionでした。 7: Public Shared Function GetInstance() As Singleton 引用では、自分自身のインスタンスを返してますけどSqlDataReaderでは SqlCommandのExecuteReaderでSqlDataReaderのインスタンスを作成して返してませんか?

  • ainax
  • ベストアンサー率45% (5/11)
回答No.1

シングルトンというデザインパターンのようなものではないかと思います。 参考URLからの引用です。 1: Public Class Singleton 2: Private Shared _Singleton As Singleton = New Singleton() 3: 4: Private Sub New() 5: End Sub 6: 7: Public Sub GetInstance() As Singleton 8: Return _Singleton 9: End Sub 10:End Class 4行目でコンストラクタはプライベートなので外部アクセス不可(外部からNewできない)。 7行目で常に同じインスタンスを返す。

参考URL:
http://hccweb1.bai.ne.jp/tsune-1/VisualBasic/singleton.html

関連するQ&A