分离类的使用和设计

本文关键字:分离 | 更新日期: 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)) {
     ...
}

是的,这就是在静态类中调用静态方法的方式。如果代码文件的大小是您唯一关心的问题,那么我会创建一个新文件并使用一个局部类