我的.cs超过33K行。每当这个文件打开时,Visual Studio都会大幅减速,偶尔也会冻结。所有这个类都是字典初始化。
有没有办法将我的Initialize()方法拆分为多个.cs?
答案 0 :(得分:5)
如果您的类只是充当一堆不同字典项的存储空间,您可能需要考虑将这些项存储在文件中。您可以将该文件作为.txt或.xml文件存储在程序集中。这样,您可以编辑该文件并让程序在运行时加载数据。
只需在解决方案中创建一个新文件并将其设置为" Embedded Resource"然后将数据加载到您的班级中。
有关嵌入资源的详细信息,请参阅https://support.microsoft.com/en-us/kb/319292。
答案 1 :(得分:3)
听起来你需要将你的方法分解成更小的块。我们的团队倾向于在一个屏幕周围保留方法,最多约50-60行。你可以调用其他方法来反过来调用其他方法,但听起来你在sinlge方法中发生了太多的事情。
您可以使用partial
关键字在多个文件中拆分类:
// file Test1.cs
public partial class Test{} //...
// file Test2.cs
public partial class Test{} //...
只要它们位于同一名称空间中,该类的实例就会在两个文件中声明所有方法。
答案 2 :(得分:1)
没有。当涉及到部分类时,这是有效的,因为顺序是无关紧要的。这些文件只是“合并”。方法和属性等的顺序无关紧要。在拆分方法时,你怎么能这样做? File1中的部分应首先运行还是File2中的部分运行?执行令很重要。编译器不知道该怎么做。
您可以做的是将其分解为多个较小的方法,然后将这些方法分散为类partial class
。例如,如果字典是名称,则可以让File1包含方法LoadNamesAThroughL
,而File2包含方法LoadNamesMThroughZ
或类似的东西。然后你的Initialize
可以按照你想要的顺序调用这两个。
答案 3 :(得分:0)
我会用Partial Classes来做这件事。将Initialize函数分解为更小的函数,将各个函数放在不同的文件中,然后让Initialize按正确的顺序调用它们。
答案 4 :(得分:0)
您可以使用partial class将其拆分为多个文件。
你还需要将方法分解为多种方法(33k线方法已经在乞求)。
documentation的示例:
public partial class Employee
{
public void DoWork()
{
}
}
public partial class Employee
{
public void GoToLunch()
{
}
}
答案 5 :(得分:-3)
Use Partial Class
public partial class Employee
{
public void DoWork()
{
}
}
public partial class Employee
{
public void GoToLunch()
{
}
}
也适用于属性