C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: インターフェイスの使い方について


(過去ログ 84 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■50121 / inTopicNo.1)  インターフェイスの使い方について
  
□投稿者/ sai (1回)-(2010/05/28(Fri) 12:36:56)

分類:[VB.NET/VB2005 以降] 

初投稿させて頂きます。

インターフェイスの使い方について、2点分からない事があります。

[質問1]-------------------------------------------------------------
インターフェイスでReadOnlyのプロパティが定義されている場合、
そのインターフェイスを継承したクラスで読み書き可能なプロパティの
定義に変更する事は可能でしょうか?
例)インターフェイス:IDataParameter.IsNullable
↓やりたい事のイメージ(下記記述ではコンパイルエラーが出ます。)
Public ReadOnly Property IsNullable() As Boolean Implements System.Data.IDataParameter.IsNullable
    Get
        …
    End Get
    Set(ByVal Value As Boolean)
        …
    End Set
End Property

[質問2]-------------------------------------------------------------
インターフェイスで定義されているプロパティで、戻り値が別のインターフェイス型となっている場合、
その戻り値を別のインターフェイス型を継承したクラス型にする事は可能でしょうか?
例)インターフェイス:IDbCommand.Parameters
↓やりたい事のイメージ(下記記述ではコンパイルエラーが出ます。)
Public ReadOnly Property Parameters() As NewParameterCollection Implements System.Data.IDbCommand.Parameters
    Get

    End Get
End Property

Public Class NewParameterCollection
    implements System.Data.IDataParameterCollection
        …
End Class
--------------------------------------------------------------------

開発環境はVB.Net2003、及び、VB.Net2005両方で作成を考えています。


以上、宜しくお願い致します。

引用返信 編集キー/
■50122 / inTopicNo.2)  Re[1]: インターフェイスの使い方について
□投稿者/ Hongliang (641回)-(2010/05/28(Fri) 13:12:34)
2010/05/28(Fri) 13:12:48 編集(投稿者)
インターフェイスメンバの別名定義によって解決可能です。

Private ReadOnly Property PiyoImpl() As IPiyo Implements IHoge.Piyo
    Get
        Return Me.Piyo
    End Get
End Property

' Piyo クラスは IPiyo を実装
Public Property Piyo() As Piyo
    Get
        return Me._piyo
    End Get
    Set
        Me._piyo = value
    End Set
End Property

Private _piyo As Piyo

引用返信 編集キー/
■50123 / inTopicNo.3)  Re[1]: インターフェイスの使い方について
□投稿者/ 囚人 (502回)-(2010/05/28(Fri) 13:14:59)
2010/05/28(Fri) 13:17:11 編集(投稿者)

無理でしょ。インターフェースの役目がなさすぎですけど、何でそんな事したいんですか?


追記:
あ、質問2は実装しているインターフェースの型自体は同じなんですね。
失礼しました。
引用返信 編集キー/
■50128 / inTopicNo.4)  Re[2]: インターフェイスの使い方について
□投稿者/ sai (3回)-(2010/05/28(Fri) 13:43:50)
■Hongliang様
なるほど!
定義名を同じにする…という固定観念が抜けていませんでした。

ありがとうございました。


■囚人様
これにはバックグラウンドの事情がありまして…。

現在、ODP.Netを使ってOracleアクセスしているのですが、
Oracleアクセス部分をWebサービス化する事となりました。

ODP.Netを使用したソースコードが沢山ある為、
「ODP.Netと同じクラス名で中身をWebサービスでのアクセスに変えた」DLLを作成すれば、
各プログラムのソースコード修正が少なくなるかな…と考えています。

そこで、最初の手筈としてODP.Netと同じ定義で各クラス・関数等の枠組み(定義部分)
の作成に着手したところ、今回の問題に当たりました。
※ODP.Netのクラスリファレンスを参考に、インターフェイスを継承させたのですが、
 今回の質問のようにODP.Netのクラスではインターフェイスと微妙に違う部分がありました。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -