是否有包含函数参数的对象?

CJ7*_*CJ7 -1 .net c# vb.net parameters

在一个很长的方法,它滚出屏幕.只是为了让我的编程生活更轻松,如果我想引用类的变量,我可以根据我使用的语言使用Methis对象.

eg. Me.var1 = "Hello"
Run Code Online (Sandbox Code Playgroud)

是否有一个对象(如Me)可以轻松引用函数的参数?

eg. params.par1 = "World"
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 6

语言中没有这样的功能.局部变量和方法参数由.NET抖动专门处理,它们在运行时进行了大量优化..NET会做什么,或者你会做什么来捕获这些变量都会破坏这种优化.

一个非常简单的解决方案是使用Window + Split,它为您提供了两个代码视图.将顶部的一个滚动到方法标题,将代码写在底部.您可以调整分割器以在底部窗口中为您提供更多空间.

利用IntelliSense将是另一种方式.使用一个小字符串作为参数名称的前缀,例如"par".然后在代码中键入"par"会自动为您提供IntelliSense弹出窗口中的参数名称列表.

然而,这些只是真正问题的创可贴.一旦你发现自己达到这样的目标,你首先想到的就是将函数中的代码分开以使其变小.经过三十年的编码,我发现了一些难以理解的事实:

  • 漫长的方法有更多的错误.有一个衡量标准,称为"圈复杂度".数字越大,代码被破坏的可能性越大.在Visual Studio的支持下,这篇博文很有用.
  • 代码永远不应该缩进超过3个级别.到目前为止,最简单的方法是发现你的圈复杂度在没有运行工具的情况下失控.
  • 方法永远不应大于屏幕上的方法.任何不适合的代码都是一种产生编译错误和错误的认知税.这有一个必然结果,拥有大显示器的程序员会产生更多错误.我使用的硬规则是使用DOS编辑器的灵感,一个方法不应该超过25行代码.
  • 宽代码会产生一种特殊的错误,这种错误是你看不到的.屏幕右侧的任何代码都可能包含可能需要长时间才能发现的错误的代码.VB.NET特别容易出现这种错误,因为它使用行尾作为语句终止符.在VS2010 btw中有很大改进,在很多情况下,下划线现在是可选的.总是打破你的线,以避免这种错误.
  • 提前计划并编写可维护的代码.维护代码永远不会小于原始代码.如果您在编写原始代码时遇到问题,那么根据定义您无法维护它.你必须从小开始.
  • 始终先设计,稍后再编码.在开始编码之前,长方法是不能长时间考虑代码的强有力的指标.本身就是一个强大的bug诱导器,除了编写正确的代码之外,还没有完成这项工作.