0

アプリケーションで使用している命名規則について助けてほしいです。ここに私が持っているものがあります:

public class BaseController : Controller
    {
        public BaseController()
        {
        }

        [Dependency]
        public IContentService _cs { get; set; }
   }


public class ContentsController : BaseController
    {

        public ContentsController(
            IContentService contentService)
        {
            _cs = contentService;
        }

おそらくより良い命名規則を選択する必要があるかどうか、また public を設定する方法が正しいかどうかを誰かに教えてもらえますか?

アップデート:

Contents コントローラー内でのみ _cs を使用します。これには別のアクセス プロパティが必要ですか? ベースコントローラーでプライベートまたは保護する必要がありますか?

4

1 に答える 1

4

メンバー変数の命名(_cs)の選択は、パブリックプロパティには適切ではありません(実際には好みの問題ですが)。アンダースコアが接頭辞として付いた「小文字のキャメルケース」の名前の使用は、通常、プライベートメンバー用に予約されています(ただし、.NETの推奨事項は接頭辞のない小文字のキャメルケースです)。パブリックプロパティは通常、UpperCamelCase表記で宣言する必要があります。

public IContentsService ContentsService { get; set;

命名規則に関するMicrosoftの推奨事項に関する情報は、http: //msdn.microsoft.com/en-us/library/ms229045.aspxにあります。

基本コントローラークラスに関しては、呼び出し元がBaseControllerをインスタンス化する場合を除いて、より具体的なタイプ(たとえば、ContentsController)ではなく、クラスを抽象として宣言して、使用法を明確にします(つまり、「BaseController」はそうではありません)。直接作成または使用する)、コンストラクターを「保護」として宣言します。

public abstract class BaseController
{
    protected BaseController()
    {
        ...
    }
}

最後の考慮事項はこれです。IContentsServiceはBaseControllerに属しますか?名前からすると、ContentsControllerだけがIContentsServiceを認識または使用しているように見えるので、おそらくそのプロパティをContentsControllerクラスに直接移動します。

HTH。

于 2012-05-31T03:30:49.320 に答える