C#对代码行数的惩罚?

C#对代码行数的惩罚?,c#,performance,lines-of-code,C#,Performance,Lines Of Code,我的home.cs表单中的代码量是否有限制或性能惩罚 我正在Visual Studio 2008中用C#编写一个数据库应用程序前端。按照排列的方式,我使用一种选项卡页面的方式来更改显示给最终用户的信息,而不是使用新的表单 来自VBA/MS Access,我记得如果您检查了一定数量的代码行,它将产生错误而无法编译。C#会在VisualStudio2008中这样做,还是会让我在性能上受到打击?我知道代码可读性可能是个问题,因为所有东西都在一个地方,但我也可以认为在某些情况下这是一个优势。这不应该是个

我的
home.cs
表单中的代码量是否有限制或性能惩罚

我正在Visual Studio 2008中用C#编写一个数据库应用程序前端。按照排列的方式,我使用一种选项卡页面的方式来更改显示给最终用户的信息,而不是使用新的表单


来自VBA/MS Access,我记得如果您检查了一定数量的代码行,它将产生错误而无法编译。C#会在VisualStudio2008中这样做,还是会让我在性能上受到打击?我知道代码可读性可能是个问题,因为所有东西都在一个地方,但我也可以认为在某些情况下这是一个优势。

这不应该是个问题

只要记住良好的编码实践,并对代码进行模块化,以提高可读性和可维护性


另一方面,如果在窗体上放置太多控件,则加载可能需要更长的时间。如果您想要一个简洁的界面,请将此因素考虑到您的设计中。

听起来很可怕,但我看不出有任何原因会出现问题。

您需要担心的不是.cs文件中的代码行,而是运行时表单上的控件数量可能会导致问题。如果它只是几个选项卡上的几个控件,您将不会有任何问题。如果在很多选项卡上有数百个控件,那么可能会出现性能问题(更不用说可用性问题了——我个人讨厌多行选项卡的选项卡控件)

此外,如果UI的目的更像是希望用户连续与所有选项卡交互的向导,我认为选项卡是不合适的。选项卡用于向用户显示选项集,而无需用户同时查看所有选项


最后,如果每个选项卡的用途明显不同,我发现将每一项功能封装为单独的形式更容易。使用选项卡,您至少可以将每个位封装为usercontrols,然后让表单上的每个选项卡承载一个usercontrols实例。

如果您使用的是选项卡,您仍然可以创建自定义用户控件来保存选项卡中的内容。为每个选项卡创建一个控件,然后可以将不同选项卡的代码分开。MSDN上有一个漫游

作为对你上面关于不显示标签的评论的回应,我真的会重新思考你是如何做到这一点的。为什么不干脆将所有用户控件放在主窗体上,必要时放在面板中,将它们全部设置为
Dock=DockStyle.Fill
,然后根据要显示的属性更改可见和启用的属性?你可能会让这件事对你自己造成更大的影响


对评论的更多回应-您可能正在寻找类似Java中的CardLayout的东西。可以找到GNU类路径版本的源代码,它可能会给您一些如何实现的想法。

我可以预见的唯一问题是,在未来,它将很难维护

尝试将主窗体的逻辑尽可能多地分解为类,以便在需要添加某些内容时,您可以在不感到不适的情况下实际执行该操作。

“我知道代码可读性可能会有问题,因为所有内容都在一个位置,但在某些情况下,我也可以将其视为一种优势。”

根据我的经验,这种态度最终会让将来必须维护代码的人感到非常头痛,因为模块化代码是一种公认的做法,这样可能发生变化的部分或用于不同目的的部分就会彼此分离

话虽如此,我不认为VS对文件的长度有限制,但我认为随着文件变长,特别是在设计视图和代码视图之间切换时,您会遇到一些严重的性能下降问题


我敦促您保存您未来的自我和他/她的理智,并在逻辑上将代码分解为单独的文件。你以后会感谢你自己的

我的新工作继承了一个表单,它有30000多行。它是完全癌变的。请在编码和模块化之前考虑一下

你确实这么做了,但值得重复:)我还提供了更多关于用户控件的信息,他应该如何分解这些控件,并提供了一个指向MSDNIt的方便链接“好吧,反正我今天已经筋疲力尽了。”停靠方式是否不会在运行时开始时加载所有控件,而是在加载每个面板时加载?如果是这样的话,从资源的角度来看,这可能是有趣的。它将加载所有这些文件,但没有理由不在表单中实现延迟加载。您只需放弃用户控件的设计器配置。我完全同意每个选项卡使用单独的用户控件!它将使开发和维护更加容易。我希望原始海报采用它!诀窍是我不会显示标签。我使用了选项卡控件,但隐藏了在选项卡之间移动的功能。我在左下角有一个按钮菜单,可以改变标签。我讨厌在顶部有50个标签的菜单。多痛苦啊,加上它看起来很吓人。不是我不同意,但解释一下为什么你觉得它很恐怖会有帮助。我认为这将是可怕的,因为在一个类中实现多个页面的复杂性:单独的页面应该是单独的类。原因很多,而且都是主观的。我不认为详细阐述这些观点有什么意义,因为这不是OP要问的问题。因此,我留下了集中的主观意见。这太可怕了。选择一个好的屏幕名称,问:)这将是一个比回答更好的评论,因为它没有回答OP的问题“是否存在限制或性能惩罚…”