在多个类中使用某些类型

时间:2013-05-19 09:26:36

标签: c# class

我有一个类:

public class Soru
{ 
    public void SoruKaydet(){...}
    private static void SoruEtiketKaydet(Guid soruId, Etiket etiket, DbManager db){...}

    public Guid? SoruId { get; set; }
    public Guid? SoranId { get; set; }
    public int? BakilmaSayisi { get; set; }
    public string HtmlGovde { get; set; }
    public string MarkdownGovde { get; set; }
    public string Baslik { get; set; }
    public int? KategoriId { get; set; }
    public DateTime OlusturulmaTarihi { get; set; }

    public List<Etiket> Etiketler { get; set; }
}

我需要另一个类应该包含类“Soru”中的一些变量。我有两种情况。

第一种情况:

public class SoruSayfa
{ 
    public static List<SoruSayfa> SoruSayfaGetir(){...}   

    public Guid? SoruId { get; set; }
    public Guid? SoranId { get; set; }
    public int? BakilmaSayisi { get; set; }        
    public string Baslik { get; set; }
    public int? KategoriId { get; set; }
    public int DurumId { get; set; }
    public double SoruPuani { get; set; }
    public int CevapSayisi { get; set; }
    public int BakilmaSayisi { get; set; }
    public string KullaniciAdi { get; set; }
    public double? KisiAlanPuani { get; set; }
}

第二种情况:

public class SoruSayfa
{
    public static List<SoruSayfa> SoruSayfaGetir(){...}   

    // Refers the class Soru instead of some variables of it
    public Soru MySoru { get; set; }        
    public int DurumId { get; set; }
    public double SoruPuani { get; set; }
    public int CevapSayisi { get; set; }
    public int BakilmaSayisi { get; set; }
    public string KullaniciAdi { get; set; }
    public double? KisiAlanPuani { get; set; }
}

在第一种情况下,没有未使用的额外变量,但在第二种情况下,未使用MySoru的一些变量(HtmlGovde,MarkdownGovde,OlusturulmaTarihi,Etiketler)。此外,Soru和SoruSayfa类将用作asp .net MVC中不同操作的模型。它们包含不同的方法。哪种情况更好?

1 个答案:

答案 0 :(得分:2)

尝试第三种情况;)

public class SoruBase
{
    public Guid? SoruId { get; set; }
    public Guid? SoranId { get; set; }
    public int? BakilmaSayisi { get; set; }
    public string Baslik { get; set; }
    public int? KategoriId { get; set; }
}

public class Soru : SoruBase
{
    public string HtmlGovde { get; set; }
    public string MarkdownGovde { get; set; }
    public DateTime OlusturulmaTarihi { get; set; }

    public List<Etiket> Etiketler { get; set; }
}

public class SoruSayfa : SoruBase
{
    public int DurumId { get; set; }
    public double SoruPuani { get; set; }
    public int CevapSayisi { get; set; }
    public int BakilmaSayisi { get; set; }
    public string KullaniciAdi { get; set; }
    public double? KisiAlanPuani { get; set; }
}