これではここからは,色々クラスを作成しながら,スタイルコップアナライザーのルールの確認をしていきたいと思います。
Objectsフォルダーの作成
WinFormプロジェクトを右クリックして,「追加」「新しいフォルダー」の順に選択し,フォルダーの「Objects」に変更します。
ProductEntityクラスの作成
作成した「Objects」フォルダーを右クリックし,「追加」「クラス」の順に選択し,「ProductEntity」クラスを作成します。ここでは例としてProductEntityとしていますが,名前は,なんでも構いません。今回は商品マスターの行データを格納するクラスの想定でProductEntityとしています。
警告の確認
作成したProductEntityはスタイルコップアナライザーの警告を示す波線が出ており,エラー一覧にも2つの警告が出ています。SA1400は「アクセス修飾子なし」,SA1600は「XMLコメントなし」の警告です。この2つは,お決まりの警告なので,クラスを作ったら,まずクラスに対するXMLコメントを書くことと,クラスのアクセス修飾子をどのようにするべきかを考えて,まずそれらを記述しましょう。
警告の対応
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Anderson.MX99.WinForm.Objects { /// /// 商品エンティティ /// internal sealed class ProductEntity { } }
クラスの一行上の行でスラッシュを3つ打ち込むと,自動でXMLコメントの雛形が生成されます。自動生成されたら,コメント欄に「商品エンティティ」とコメントを書きます。続いてクラスのアクセス修飾子をinternalとします。もちろんinternalかpublicかは,用途に合わせて設定してください。sealedを付けているのは,このクラスが継承されることを想定していない為,sealedとしています。スタイルコップアナライザーの警告とは関係ありませんが,基本的にクラスはsealedで作成し,どうしても継承される必要のあるクラスだけをsealedなしとします。sealedで作成したクラスでも,後でどうしても継承する必要がでた場合は,その時点でsealedキーワードを削除して対応するというやり方がいいです。このようにすると,いったん警告が無くなります。
コンストラクタの作成
続いてコンストラクタの作成を行います。普通にタイピングしても構いませんが,「ct」と打ち込んで,Tabキーを2回押すと,自動でコンストラクタが生成されます。
コンストラクタの警告
この状態でもまた警告が表示されます。SA1600は例のごとくXMLコメントです。スラッシュ3つを打ち込んで,XMLコメントの雛形を自動で生成し,「コンストラクタ」を記述します。
SA1505とSA1508
SA1505は,中カッコの{の右側に不要な改行があることを示しています。SA1508は,中カッコ}の左側に不要な改行があることを示しています。
現在コンストラクタの{と}の間には改行が1行あり,それが不要な改行の為,この二つの警告が出ています。なので,この不要な1行を削除すると,2つの警告が同時に消えます。
次のように,コンストラクタに1行記述し,その次の行に,不要な改行を入れると,SA1500は表示されず,SA1508だけが表示されます。
どちらにしても,この2つの警告がある場合は,不要な改行があるということなので,不要な改行を消すようにしましょう。
デストラクタ
続いてデストラクタを記述します。デストラクタはチルダ「~」に続けてクラス名を書きますが,チルダ「~」を書いてからTABキーを押すことで,自動で生成されます。
警告はコンストラクタを作った時と同じ警告がでるので,XMLコメントを記述して,不要な改行コードを削除します。
SA1643
ここまで記述すると,新規の警告が表示されます。SA1643です。
XMLコメントが適切ではないといわれていますが,これは英語圏特有の文化で,日本語にはあっていないので,SA1643は非表示にしておきましょう。
以上でコンストラクタと,デストラクタ作成時の対応となります。