分离类的使用和设计
本文关键字:分离 | 更新日期: 2023-09-27 18:04:08
这是一个基本的问题,但是我不知道如何设置这个类。我有一个c#代码文件,它变得太大了,所以我想把它分成更小的块。
我把3个方法拿出来,放到这个类里叫做Events
现在,如果我的主类需要这个新类中的方法,我就像这样调用它吗?我确实试过这个,它工作。但是,这样做似乎并没有真正节省任何空间。
IEnumerable<EngineSchema> thisWeeksParts =
Events.WeeklyPartsList(engineCat, startDay, endDay)
谢谢!
下面是新类:
public static class Events
{
public static IEnumerable<EngineSchema> WeeklyPartsList(IEnumerable<EngineClass> engineCategory, DateTime startDay,
DateTime endDay)
{
var EngineParts =
engineCategory.SelectMany(e => e.Pages)
.Where(c => c.StartDateTime >= startDay & c.EndDateTime <= endDay);
return EngineParts;
}
public static IEnumerable<EngineClass> ClassOfEngine(int EngineSpecGroupID)
{
return Repository.Query()
.Where(c => c.VehicleGroup.Any(cg => searchParts.Contains(EngineSpecGroupID)));
}
public static IEnumerable<EngineSchema> GetEngineList(int engineYear, DateTime startDate, DateTime endDate)
{
return WeeklyPartsList(ClassOfEngine(engineYear), startDate, endDate);
}
}
如果我的主类需要这个新类中的方法,我就像这样调用它吗?[…]
虽然"纯"静态语法工作得很好,但切换到扩展语法可能会稍微方便一些:
public static IEnumerable<EngineSchema> WeeklyPartsList(this IEnumerable<EngineClass> engineCategory, DateTime startDay, DateTime endDay) ...
// ^^^^
现在你可以这样调用你的方法:
IEnumerable<EngineSchema> thisWeeksParts = engineCat.WeeklyPartsList(startDay, endDay);
或
foreach (var part in Events.ClassOfEngine(123).WeeklyPartsList(startDay, endDay)) {
...
}
是的,这就是在静态类中调用静态方法的方式。如果代码文件的大小是您唯一关心的问题,那么我会创建一个新文件并使用一个局部类