如何在C#中使用许多参数来断开方法定义的行?

odi*_*seh 3 c#

在c#中,当我们编写一个获取6个参数的方法时,我们想要打破3行中的参数,我们怎么能打破这些行呢?

Fre*_*örk 14

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

private void SomeMethod(int param1, int param2, 
                        int param3, int param4,
                        int param5, int param6)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

在C#中(与VB.NET不同 - 至少到现在为止; 这将在VS2010中发生变化,在页面的一半左右检查"隐式线路延续")你可以在任何地方引入代码中的换行符.您无需在下一行指定代码语句继续; 由语法处理.

如果您有一个声明为上面示例的方法,则不会对您如何调用它设置任何要求.以下示例均有效:

SomeMethod(1, 2, 3, 4, 5, 6);
SomeMethod(1, 2, 3, 4, 5,
    6);
SomeMethod(1
    , 2, 3, 4
    , 5, 6);
Run Code Online (Sandbox Code Playgroud)


Mat*_*lls 8

您可以使用ENTER键将键划分为键盘右侧.

  • 如果他有RETURN键怎么办?其实我有"Invio"按钮...... XD (2认同)
  • @kentaromiura 谢谢,2023 ENTER 对我不起作用,但 RETURN 有用。 (2认同)

Mar*_*ris 8

在C#中,您可以在任何参数名称之后(在逗号之后)中断行.Stylecop(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)
{

}
Run Code Online (Sandbox Code Playgroud)

但是,没有要求遵循这些指导原则,您可以做任何适合您内部风格的事情.

  • 这是英语中的标准方式。我永远无法理解为什么人们整天阅读英文写作,然后在编码时他们会想出各种不同的格式来组织文本。大多数情况下,遵循英语。枚举要么全部在同一行 _This、that 和 other._ 上完成,要么全部在新行上完成(_如项目符号点_)。函数参数没有理由不遵循这种风格。这让我想知道为什么人们要重新设计这些东西。谢谢,你做得很好。 (4认同)

Jon*_*eet 7

如果你的意思是布局,有各种选择,例如:

选项1:

public void Foo(int first, int second,
                int third, int fourth,
                int fifth, int sixth)
Run Code Online (Sandbox Code Playgroud)

选项2:

public void Foo(int first, int second,
    int third, int fourth,
    int fifth, int sixth)
Run Code Online (Sandbox Code Playgroud)

选项3:

public void Foo(
    int first, int second,
    int third, int fourth,
    int fifth, int sixth)
Run Code Online (Sandbox Code Playgroud)

选项4:

public void Foo
    (int first, int second,
     int third, int fourth,
     int fifth, int sixth)
Run Code Online (Sandbox Code Playgroud)

我个人喜欢选项1,但它有两个缺点:

  • 如果更改方法名称,则需要再次放置参数
  • 你没有获得每行的空间,因为它已经缩进了相当长的距离

如果做不到这一点,我通常会选择选项2或3.选项4对我来说非常难看.


Tom*_*mas 6

在C#中,您不需要特别指定任何内容来将一条线分成几个屏幕行.

所以在vb中看起来像这样的方法:

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

    doSomething()

end sub
Run Code Online (Sandbox Code Playgroud)

在C#中会是这样的

public void someMethod(string param1,
    int param2, 
    bool param3) {

    doSomething();
}
Run Code Online (Sandbox Code Playgroud)