如何合并两个类
本文关键字:两个 合并 何合并 | 更新日期: 2023-09-27 18:33:45
在我的项目中,我有两个类:文章和新闻。其中的某些字段是相同的。例如:标题、文本、关键字、成员 ID、日期。
我创建了一个接口并将相同的字段放入其中。正确吗?
interface ITextContext
{
public int ID { get; set; }
public int Title { get; set; }
public string Text { get; set; }
public DateTime Date { get; set; }
List<Keyword> Keywords;
}
public class Article:ITextContext
{
public int ArticleID { get; set; }
public bool IsReady { get; set; }
}
public class NewsArchive:ITextContext
{
public int NewsArchiveID { get; set; }
}
在当前的实现中,ITextContext
中定义的属性必须以Article
和NewsArchive
实际实现才能编译。这将是有效的,但不会导致代码重用,另一方面,这不是接口的目的。
没
关系,假设您不想在类之间共享任何实现细节。例如,如果要向 TextContext 添加一个同时供 Article 和 NewsArchive 使用的方法,则需要从公共基类继承:
public class TextContext
{
public int ID { get; set; }
public int Title { get; set; }
public string Text { get; set; }
public DateTime Date { get; set; }
List<Keyword> Keywords;
public string SomeMethod()
{
return string.Format("{0}'r'n{1}", Title, Text);
}
}
public class Article : TextContext
{
...
}
如果只需要共享事件、索引器、方法和属性而不进行实现,则应使用接口。
如果你需要共享一些实现,你可以像使用接口一样使用抽象类(抽象类不能实例化)
public abstract class TextContext
{
public int ID { get; set; }
public int Title { get; set; }
public string Text { get; set; }
public DateTime Date { get; set; }
List<Keyword> Keywords;
public int PlusOne(int a){
return a+1;
}
}
public class Article:TextContext
{
public int ArticleID { get; set; }
public bool IsReady { get; set; }
}
public class NewsArchive:TextContext
{
public int NewsArchiveID { get; set; }
}
现在,当您初始化新的Article
或NewsArchive
时,您会看到基类的字段,方法..。