单独的课程用法和设计

时间:2016-08-26 20:05:41

标签: c# c#-4.0 .net-4.5

这是一个基本问题,但我不知道如何设置这个类。我有一个c#代码文件太大了,所以我想开始把它分成更小的块。

所以我采用了3种方法,并把它放在这个名为事件的类中。

现在,如果我的 主要课程 需要这个新课程中的方法,我是否只是这样称呼它?

我确实试过这个,但它确实有效。但似乎我并没有真正通过这样做来节省任何空间。

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);
    }
}

2 个答案:

答案 0 :(得分:1)

  

如果我的主类需要这个新类中的方法,我只是这样称呼它吗? [...]

虽然&#34;纯&#34;静态语法工作正常,切换到扩展语法可能稍微方便一些:

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)) {
     ...
}

答案 1 :(得分:-3)

是的,这就是在静态类中调用静态方法的方法。如果代码文件的大小是您唯一关注的问题,那么我只需创建一个新文件并使用partial class