文章目录
- 项目地址
- 一、接口的使用
-
- 二、泛型
-
- 2.1 单例模式
- 2.2 泛型方法
- 2.3 泛型类
- 2.4 泛型约束
- 2.5 泛型的应用 (分页功能)
- 三、反射
-
- 四、三层架构(反射解耦)
-
- 4.1 项目结构:
- 4.2 各个项目之间的引用
- 4.3 Models层编写
项目地址
C# 8
一、接口的使用
- 共有的功能和属性 :使用类
- 独有的功能:设置成接口
1.1 仿打印机
- 描述:打印机有不同颜色的墨盒,不同大小的纸张
- 设计: 打印机类, 墨盒的接口,纸张接口
- 墨盒接口
IInkBox
namespace ConsoleApp6
{
public interface IInkBox
{
string GetColor();
}
}
- 纸张接口
IPaper
namespace ConsoleApp6
{
public interface IPaper
{
string GetPaper();
}
}
- 根据接口实现类
//黑色墨盒类
namespace ConsoleApp6
{
public class BlackInkBox : IInkBox
{
public string GetColor()
{
return "Black墨盒";
}
}
}
//A4纸类
namespace ConsoleApp6
{
internal class A4Paper : IPaper
{
public string GetPaper()
{
return "使用A4纸打印";
}
}
}
- 打印机类,只用在添加各个接口的构造方法就行,然后直接使用接口的方法
namespace ConsoleApp6
{
public class Printer
{
public IInkBox? IIntBox { get; set; }
public IPaper? IPaper { get; set; }
public void Print(string content)
{
Console.WriteLine($"打印机正在使用{IIntBox?.GetColor()} 和{IPaper?.GetPaper()}打印内容:{content}");
}
}
}
- 实例化
Printer p1 = new Printer();
p1.IIntBox = new BlackInkBox();
p1.IPaper = new A4Paper();
string content = "我是一只野猪";
p1.Print(content);
1.2 防盗门功能