如:报表、报表(1)、报表(2),它们都叫报表,如何通过一个代码将他们定义为报表,然后不管是报表(1)还是报表(10)都能被读取到
你说的太抽象了,代码只能实现具体的功能,这么抽象的东西无从下手
你先说说到底是有多个文件名长相差不多
还是有一堆变量名相似
还是一堆类名
还是什么
类似这样的?
using System;
using System.Collections.Generic;
namespace LinqTutorial
{
public class MyProgram
{
static void Main(string[] args)
{
var reports = new List<Report>
{
new ReportA(),
new ReportB(),
new ReportC("XXX报表(C)")
};
foreach (var report in reports)
{
report.Print();
}
Console.Read();
}
}
public abstract class Report
{
/// <summary>
/// 报表名称(抽象属性)
/// </summary>
public abstract string ReportName { get; }
/// <summary>
/// 打印报表的方法(虚方法)
/// </summary>
public virtual void Print()
{
Console.WriteLine($"打印报表:{ReportName}");
}
}
public class ReportA : Report
{
public override string ReportName => "ReportA";
}
public class ReportB : Report
{
public override string ReportName => "ReportB";
/// <summary>
/// 打印报表的方法(虚方法)
/// </summary>
public override void Print()
{
Console.WriteLine($"重写打印报表的方法:{ReportName}");
}
}
public class ReportC : Report
{
public ReportC(string reportName)
{
ReportName = reportName;
}
public override string ReportName { get; }
}
}