- PR -

Imageクラスを継承するには

1
投稿者投稿内容
HIRO
常連さん
会議室デビュー日: 2004/10/28
投稿数: 41
投稿日時: 2005-03-22 19:08
Imageクラスを継承してImageに対するプロパティを追加した派生クラスを作成したのですが、以下のように表示され作成できません。

Public Class test
Inherits Image

End Class

@以下の状態では、「基本クラス'Image'に、引数なしで呼び出せるアクセス可能な'Sub New'が指定されていないため、クラス'test'は、'Sub New'を宣言しなければなりません。」となります。

AそこでSub Newを宣言すると、「'test' の基本クラス 'System.Drawing.Image' には、引数なしで呼び出される、アクセス可能な 'Sub New' がないため、この 'Sub New' の最初のステートメントは、'MyBase.New' または 'MyClass.New' に対して呼び出さなければなりません。」となります。

BSub Newを作成し、その中に「MyBase.New」を記述すると、「'New' にアクセスできないため、オーバーロードの解決に失敗しました。」となります。

Imageクラスは抽象基本クラスとなっていますが、継承はどのようにすればできるのでしょうか?

Windows2000Pro SP4
VB.NET2003
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-03-22 19:51
System.Drawing.dllをildasm.exeで見てみてください。
アクセス可能範囲を表すキーワードがassemblyになっているでしょう。
これは、VB.NETで言うFriendです。
つまり、同じアセンブリ内からでないとnewできないということです。

Imageから直接継承することはあきらめてください。
HIRO
常連さん
会議室デビュー日: 2004/10/28
投稿数: 41
投稿日時: 2005-03-22 20:05
一郎さんありがとうございました。
BitmapがImageを継承しているのに自分で作ったクラスが継承できない理由がわかりました。
別な方法を考えて見ます。
1

スキルアップ/キャリアアップ(JOB@IT)