C#, C♯, C#相談室 Part98 (476レス)
上下前次1-新
抽出解除 レス栞
158(2): (ワッチョイ a913-VR7F) 2024/10/21(月)02:25 ID:SQ8zGBXh0(1/2) AAS
ライブラリを使用するために下みたいなコード書いた
ライブラリ内でIHoge.Method();の機能を上書きしたいのとHogeで設定されるさまざまな機能を使いたいがためにIHogeを実装したHogeクラスを継承してMethod();を隠蔽、そのうえでライブラリから呼び出されるようにIHogeをさらに継承?実装させてる
ちょっと無理矢理感強いけどこれはアリですか?
ライブラリの中
~
IHOGE.Method();
~
public interface IHoge
{
public void Method();
}
public class Hoge : IHoge
{
public void Method()
{
元の処理
}
}
自前で作ったクラス
public class NewHage : Hoge,IHoge
{
public new void Method()
{
上書き処理←やりたいこと
}
}
160(1): (ワッチョイ 11de-LgwA) 2024/10/21(月)08:25 ID:451kbP4c0(1) AAS
>>158
Hoge.Methodにvirtual
NewHage.Methodでoverride
161(1): (ワッチョイ 0501-FUd+) 2024/10/21(月)12:38 ID:1/IbrF450(1) AAS
>>158
それがやりたいことなら別にいいんじゃね?
Hogeの他のメソッドがMethod()を呼ぶとか
Method()がHogeの他のメソッドを呼ぶとかの関係が出てくると
newを使わない場合に比べるとバグるリスクが高くなるような気はする
インターフェース+コンポジションにしておけばバグるリスクは低くなる
その代わりに多少書く手間がかかる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.123s*