迷失在代码中,比创建区域存在更好的方法

本文关键字:存在 区域 更好 方法 创建 代码 迷失 | 更新日期: 2023-09-27 18:03:01

我使用的是Visual c# 2010 express edition

我有近1500行有效的代码,并一直定期使用区域,但它失控了,我如何才能更好地组织或直接显示一个方法,而不必在设计表单中单击?

编辑:我读过这个http://msdn.microsoft.com/en-us/library/jj739835.aspx(地图依赖关系),但它是为visual studio 2013,从来没有听说过任何像它

迷失在代码中,比创建区域存在更好的方法

这是个人偏好的一部分,但可以使用CTRL+M, CTRL+L来折叠/展开所有内容,以使内容更紧凑。

或者,通过选择器(编辑器窗口的右上方),您可以直接进入一个方法。

或者(再一次),古老的Go to definition (F12)

如果一个文件中有很多代码,我通常会使用注释只需按ctrl-f选择我要查找的内容或者在合适的情况下将它们分解为类文件

尽量不要在一个文件中保存太多内容。区域很棒,但最好避免使用它们。关于"文件/类中的最大行数"有很多教条,但您需要知道的是,如果文件开始变得令人讨厌阅读,您需要尝试将其拆分:)

总是尝试用功能来描述和命名你的类。例如,您可能有一个ScientificCalculator类。当您开始添加函数时,您开始注意到相关功能组。一旦它们超过了2-3个函数,就把它们移到新的类中!

所以你的ScientificCalculator类现在可以引用更小的类,如BasicOperations, TrigonometricOperations, LogarithmicOperations等…你懂的。

这样做有很多好处,包括(但不限于)轻松地在代码中找到方法。哦,你想修改sin()函数吗?你知道去哪里找——三角学操作类!从长远来看,这是一种更愉快的体验。

你的整个项目有1500行代码吗?或者在一个类中使用1500行代码?或者(更糟糕的是)在单个方法中?

1500行对于一个给定的项目来说并不是那么糟糕,只要你在逻辑上分解了你的依赖项。一个类1500美元可能远远超出你想要管理的范围。

在编写类时,尽量记住类的职责。它做得太多了吗?所有的方法都与一个单一的职责相关吗?它是否混合了逻辑和数据库交互之类的东西?它是否混合了表示逻辑和业务逻辑?

如果一个方法有1500行代码,那么…

同样,请记住,这个响应中的所有内容都应该以"in general"开头——没有人可以在没有实际看到它的情况下对您的代码做出严格的说明性陈述,并且总是有特殊情况。

最后,如果重构成单独的类现在看起来是一项很大的工作,请记住,随着项目的规模和复杂性的增长,它只会变得越来越困难。

这是一个比其他技巧更有争议的技巧…

我假设代码不是直接在你的控制之下,比如说一组遗留的库或你继承而不是设计的网站…如果不是这样,那么就有其他人建议的更好的选择(DRY、封装、重构等)。然而,一个在过去对我有效的权宜之计是利用部分类。

——SuperBigClass.cs类SuperBigClass {public void MethodA(){}

  public void MethodB(){
  }
  public void MethodC(){
  }
  ...
  public void MethodZZTop(){
  }
}

…可以分成几个较小的文件....

-----SuperBigClass - Methods A through Z .cs -----
public partial SuperBigClass {
  public void MethodA(){
  }
  ...
  public void MethodZ(){
  }
}
-----SuperBigClass - MethodZZTop.cs -----
public partial SuperBigClass {
  public void MethodZZTop(){
  }
}

只要术语partial适用于所有类文件的类定义,并且所有类定义都在相同的命名空间中,就可以正常工作。这里是更多信息的链接:部分类和方法(c#编程指南)

再次…最好的方法是DRY代码,封装,重构,等等……但有时当你进入一个遗留的应用程序,你需要在不做任何功能改变的情况下重组文件本身时,这个快捷方式(诚然是部分类语法的意外使用)可以帮助你分割大文件,并帮助你理解事情。