プログラミングをはじめる前に学ぶ講座

【Windowsプログラミング入門のための入門 .NET C# / VB】
テキストに従って 「プログラミング作業を真似て学ぶ」新しい学習スタイル講座 です。
短期間でプログラミング作業を学ぶことで、プログラミング学習を効率よく行えるようになります。
プログラミング言語は、C#とVBの同時習得もOK! メールサポート有り
http://www.knowledge.ne.jp/lec1755.html

あなたの知識でネットに講座が開けます!

あなたの知識でネットに講座が開けます!
あなたのサイト情報を整理するだけで簡単に開設できます

2010年1月7日木曜日

CA1012: 抽象型にはコンストラクタを含めないでください

http://msdn.microsoft.com/ja-jp/library/ms182126.aspx

public abstract class Class1
{
    public Class1() {}
}

これをVS2008でコンパイルしてもエラーにはならない。

「抽象クラスの目的は、複数の派生クラスで共有できる基本クラスの共通の定義を提供すること」と書かれている。

.NET Frameworkクラスライブラリでは、抽象クラスのコンストラクタは、protectedで宣言されている。

したがって、次のようなコードでルールかした方がいい。

public abstract class Class1

{
    protected Class1() {}
}

もちろん、コンストラクタの内部は空にすること。
抽象クラスだから、もちろんインスタンス化はできない。

なお、コンストラクタは、抽象クラスのコンストラクタも実行される。

0 件のコメント: