代码之家  ›  专栏  ›  技术社区  ›  odiseh

如何在C中为具有多个参数的方法定义换行?

c#
  •  3
  • odiseh  · 技术社区  · 15 年前

    在C中,当我们编写一个方法,例如获取6个参数,并且我们想要将参数分成3行时,我们如何才能将这些行分开?

    8 回复  |  直到 15 年前
        1
  •  5
  •   Tomas    15 年前

    在c中,您不需要指定任何特别的内容,就可以将一条线分成几个屏幕上的线。

    所以在vb中的方法如下:

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

    在C中会像这样#

    public void someMethod(string param1,
        int param2, 
        bool param3) {
    
        doSomething();
    }
    
        2
  •  14
  •   Fredrik Mörk    15 年前

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

    private void SomeMethod(int param1, int param2, 
                            int param3, int param4,
                            int param5, int param6)
    {
        // do something
    }
    

    在C中(与vb.net不同-至少到目前为止; this will change in VS2010 ,检查“隐式行继续符”,大约在页面的一半处)您可以在代码的任何地方引入换行符。您不需要指定代码语句在下一行继续;这由语法来处理。

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

    SomeMethod(1, 2, 3, 4, 5, 6);
    SomeMethod(1, 2, 3, 4, 5,
        6);
    SomeMethod(1
        , 2, 3, 4
        , 5, 6);
    
        3
  •  8
  •   Matt Howells    15 年前

    您可以使用Enter键,朝键盘右侧断线。

        4
  •  7
  •   Martin Harris    15 年前

    在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)
    {
    
    }
    

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

        5
  •  7
  •   Jon Skeet    15 年前

    如果您的意思是在布局方面,有各种选项,例如:

    选项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在我看来很难看。

        6
  •  2
  •   Lloyd Powell binku    15 年前

    你什么意思?这样地?

    public void MyMethod(int Parameter1, string Parameter2
                       , long Parameter3, float Parameter4
                       , double Parameter5, char Parameter6)
    {
        //Method Functionality
    }
    
        7
  •  2
  •   lc.    15 年前
    public void Foo(object Parameter0, object Parameter1,
        object Parameter2, object Parameter3,
        object Parameter4, object Parameter5)
    {
        //do stuff
    }
    

    6个参数/3行=每行2个参数?尽管我会说这看起来有点滑稽,因为每条线路都有额外的空间。

    请注意,在C中,您只需使用换行符-不需要任何花哨(vb's _ “例如。”

        8
  •  0
  •   S M Kamran    15 年前

    如果我明白你说的话,那么,

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