Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中为具有多个参数的方法定义断线?_C# - Fatal编程技术网

如何在C#中为具有多个参数的方法定义断线?

如何在C#中为具有多个参数的方法定义断线?,c#,C#,在c#中,当我们编写一个方法来获取例如6个参数时,我们想把参数分成3行,我们怎么能把这些行打断呢 我想你可以简单地添加换行符: private void SomeMethod(int param1, int param2, int param3, int param4, int param5, int param6) { // do something } 在C#中(与VB.NET不同——

在c#中,当我们编写一个方法来获取例如6个参数时,我们想把参数分成3行,我们怎么能把这些行打断呢

我想你可以简单地添加换行符:

private void SomeMethod(int param1, int param2, 
                        int param3, int param4,
                        int param5, int param6)
{
    // do something
}
在C#中(与VB.NET不同——至少到目前为止是如此),在页面的一半处选中“隐式换行符”),几乎可以在代码的任何地方引入换行符。您不需要指定代码语句在下一行继续;这是由语法处理的

如果您在上面声明了一个方法作为我的示例,那么这不会对如何调用它设置任何要求。以下示例均有效:

SomeMethod(1, 2, 3, 4, 5, 6);
SomeMethod(1, 2, 3, 4, 5,
    6);
SomeMethod(1
    , 2, 3, 4
    , 5, 6);

如果我正确理解了你说的话

public void myMethod ( type parameter1, 
                       type parameter2,
                       .
                       .
                       type parameterN) 
{
     .
     .
     .
}  

你什么意思?像这样

public void MyMethod(int Parameter1, string Parameter2
                   , long Parameter3, float Parameter4
                   , double Parameter5, char Parameter6)
{
    //Method Functionality
}

您可以使用键盘右侧的ENTER键打断这些行

public void Foo(object Parameter0, object Parameter1,
    object Parameter2, object Parameter3,
    object Parameter4, object Parameter5)
{
    //do stuff
}
6个参数/3行=每行2个参数?虽然我觉得这看起来有点滑稽,因为每条线都有额外的空间

请注意,在C#中,您可以只使用换行符-不需要任何花哨的东西(例如VB的“
”)

在C#中,您可以在任何参数名称之后(逗号之前或之后)换行。(Microsoft编码风格指南检查器)建议在一行上显示所有参数,或每行显示一个参数-中间不显示任何参数。像这样:

public void Method(int param1, int param2, int param3, int param4, int param5, int param6)
{

}

public void Method(
    int param1,
    int param2,
    int param3,
    int param4,
    int param5,
    int param6)
{

}

但是,不需要遵循这些指导原则,您可以做任何适合您内部风格的事情。

如果您指的是布局,则有多种选择,例如:

备选案文1:

public void Foo(int first, int second,
                int third, int fourth,
                int fifth, int sixth)
备选案文2:

public void Foo(int first, int second,
    int third, int fourth,
    int fifth, int sixth)
备选案文3:

public void Foo(
    int first, int second,
    int third, int fourth,
    int fifth, int sixth)
备选案文4:

public void Foo
    (int first, int second,
     int third, int fourth,
     int fifth, int sixth)
我个人喜欢选项1,但它有两个缺点:

  • 如果更改方法名称,则需要重新布置参数
  • 每行没有那么多的空间,因为它已经缩进了一段相当长的距离
如果做不到这一点,我通常会选择2或3。选项4在我看来非常难看。

在C#中,您不需要指定任何特定的内容来将一行打断为屏幕上的几行

因此,在vb中有一个类似的方法:

sub someMethod(param1 as String, _
    param2 as Integer, _
    param3 as Boolean)

    doSomething()

end sub
在C中会像这样#


你的问题是关于断行的语法,还是一种在列表中的什么位置断行的方法?第一个问题:sysntax用于断行,特别是当我们要将参数传递给该方法时。我得到的印象是,他来自VB世界,在VB世界中,下划线“\ux”用于断行。在c#中尝试这一点是行不通的,所以他可能不知道该怎么办。我在一些从vb到c的开发人员身上看到过这一点。有趣的是,有时最简单的事情会把一个绊倒。-1将其恢复到0:在3行上需要。其他答案更清楚,并且解释了为什么,不仅仅是给出答案。你可以扩展你的VB.NET注释,说4.0中有一些东西使得换行符通常是多余的(而不仅仅是暗示),如果他有返回键呢?实际上我有“因维”按钮。。。XDIt似乎有些人会把整个功能放在一行,如果他们不是偶尔偶然击中那个东西的话…@Ruben:删除了我的评论。请随意添加一个新的:)这是英语中的标准方式。我永远无法理解为什么人们整天阅读英语写作,然后在编码时,他们想出各种不同的格式来组织文本。在大多数情况下,学习英语。枚举要么全部在同一行This、that和other上完成,要么全部在新行上完成(如项目符号)。函数参数没有理由不遵循该样式。这让我想知道为什么人们要重新设计这些东西。谢谢,你们做得很好。这是完美的,我需要的工具,将自动做到这一点,似乎是无法做到这一点
public void someMethod(string param1,
    int param2, 
    bool param3) {

    doSomething();
}