我的问题是如何将一个包含override的方法拆分为多个文件
我知道这在partial中是不可能的。
在我的代码中,这个方法中有太多的行。我在QuantConnect平台上编写的代码限制了一个文件的大小,并且达到了这个限制。
public partial class TestAlgo : QCAlgorithm
{
public override void OnData(Slice slice) // Name OnData can't be modified.
{
Indices:
{
//First Indices
}
{
//Second Indices
}
...
}
}发布于 2019-10-08 00:18:28
不幸的是,这是不可能的。您应该重构代码,以便将方法拆分为多个方法,然后可以使用partial,尽管我仍然不确定为什么要这样做,而不是将复杂的代码重构为多个类。
发布于 2019-10-08 00:19:51
分部方法是隐式私有的,因此它们不能是虚拟的。
更重要的是,即使使用非虚方法,partial也不允许将方法体本身拆分到多个文件中。它只是一种方式,允许一个文件声明方法,另一个文件提供实现。
因此,我们应该关注您问题的这一部分,而不是您所询问的XY Problem:
我在这个方法中有太多的代码行。我在QuantConnect平台上编写的代码限制了一个文件的大小,并且达到了这个限制。
不管文件大小的限制是多少,我猜这是一个相当宽松的限制。如果您由于一个方法而达到了该限制,那么您在该方法中使用了way太多代码。
关于一个方法应该有多少行代码,有很多指导原则。它们在本质上是相当主观的。人们争论它是“一个屏幕”还是“两个屏幕”或其他东西。但可以肯定地说,你已经超越了这一点。
你的方法真的需要重构成更小的片段。可能会分成更小的班级。具体怎么做,这里不能回答,因为你还没有提供上下文。但是,这是必须要做的。
https://stackoverflow.com/questions/58273020
复制相似问题