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

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

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

Re[2]: 継承とは別の手段


(過去ログ 120 を表示中)

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

■70233 / inTopicNo.1)  継承とは別の手段
  
□投稿者/ C#研究者 (57回)-(2014/03/04(Tue) 09:28:48)

分類:[C#] 

        protected override CreateParams CreateParams
        {
            [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand,
                 Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]

            get
            {
                const int CS_NOCLOSE = 0x200;
                CreateParams cp = base.CreateParams;
                cp.ClassStyle = cp.ClassStyle | CS_NOCLOSE;

                return cp;
            }
        }

閉じるボタンを無効にするためにCreateParamsをオーバーライドしたのですが、
他にも同様の処理が必要なフォームが見つかり、継承元フォームを作ることを考えました。

しかし、formを継承を使用しているものがいくつかあり、将来そっちの継承元として使ってしまうと
継承元の層が深くなってしまう懸念があります。

そこで回避策を立てたいのですが、どのようなことが考えられるでしょうか。




引用返信 編集キー/
■70239 / inTopicNo.2)  Re[1]: 継承とは別の手段
□投稿者/ shu (501回)-(2014/03/04(Tue) 10:36:24)
No70233 (C#研究者 さん) に返信

この実装はoverrideなので継承したクラスでないと使えないです。

1層深くなるのは我慢して最上位のクラスを作成しそこに提示された
内容を記述。プロパティなどでON,OFF出来るようにしておくのはどうでしょう?

引用返信 編集キー/
■70240 / inTopicNo.3)  Re[2]: 継承とは別の手段
□投稿者/ C#研究者 (58回)-(2014/03/04(Tue) 11:39:59)
回答ありがとうございます。
そうですね。継承が減らせないのならプロパティ等でなるべく
継承間の依存を減らしていくしかないですよね。
ありがとうございます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -