4

わかりました基本的な質問です。私は独学の開発者なので、どちらが正しい方法であるかを判断できないギャップがあるように見えることがよくあります...そしてこれはその1つです!! シンプルな子アイテムのコレクションを持つビューモデルがあります。しかし、これらのクラスが定義されている場所では、子オブジェクトが親のサブクラスであるべきかどうかを判断できません...

たとえば、次のようになります。

public class ActionChartViewModel
{
    public IEnumerable<ActionChartItemViewModel> Items { get; set; }
    public TextPagingInfo TextPagingInfo { get; set; }
}

public class ActionChartItemViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Rating { get; set; }
    public string Comment { get; set; }
    public string AssignedToUserName { get; set; }
    public string ContactRequested { get; set; }
    public bool Resolved { get; set; }
    public int NoteCount { get; set; }
    public string ContactDetails { get; set; }
    public int ResponseId { get; set; }
}

またはこれ:

public class ActionChartViewModel
{
    public IEnumerable<Item> Items { get; set; }
    public TextPagingInfo TextPagingInfo { get; set; }

    public class Item
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Rating { get; set; }
        public string Comment { get; set; }
        public string AssignedToUserName { get; set; }
        public string ContactRequested { get; set; }
        public bool Resolved { get; set; }
        public int NoteCount { get; set; }
        public string ContactDetails { get; set; }
        public int ResponseId { get; set; }
    }
}

コードの読みやすさと単純さの面で 2 番目を好みますが、サブクラスの長所と短所はわかりません。皆さんはどう思いますか??

前もって感謝します!!

4

2 に答える 2

3

内部クラスではなく、(同じファイル内の) 別のクラスを使用します。内部クラスは、親クラスのみを提供する場合に役立ちます。つまり、親クラスのメソッドなどによってのみ、親クラスの外部からアクセスされることはありません。あなたの場合、ビューで内部クラスを使用する必要があります。だから私はそれの必要性を見ていません。最初のオプション、つまり個別のクラスは、実際には私にとってよりシンプルで読みやすいです。

于 2013-02-07T01:36:01.850 に答える
1

「サブクラス」は、そのタイプのより具体的な実装(継承)を作成する場合です。@ bloparodが言うように、あなたは「内部クラス」をやっています。また、内部クラスを使用することはめったにありません。時々私は一時的なものとしていくつかprivateまたはinternalclasseを使用します。これを行う場合は、次のような構文で作成する必要があります。

ActionChartViewModel.Item item = new ActionChartViewModel.Item(); 

私は通常、ファイルを分離してpublicクラスを使用しますが、ViewModelがたくさんある場合は、同じカテゴリのViewModelをすべて単一のファイルに保持し、必要に応じて継承することをお勧めします。

ファイル: ProductViewModel.cs

public class ProductViewModel 
{
   public int Id { get; set; }
   public string Name { get; set; }
   public decimal Price { get; set; }
   public string CategoryName { get; set; }
}

public class ProductDetailViewModel : ProductViewModel 
{
   public int Stocke { get; set; }
   public string Obs { get; set; }
   public IEnumerable<ProductMovViewModel> Inventory 
   /* other properties */
}

public class ProductMovViewModel 
{
   public int Id { get; set; } 
   public DateTime Date { get; set;
   public int Amout { get; set; }
}

良い習慣として、必要に応じて、ViewModelをファイルに分離することもできます。

于 2013-02-07T01:28:57.797 に答える