C#中的函数修饰符顺序

时间:2010-09-20 09:03:03

标签: syntax c#-4.0

我想知道是否有一个标准来设置C#中的函数修饰符的顺序。即。

public static void Method()
{}

static public void Method()
{}

这两个都很好,但是

当我编码:

public void static Method()
{}

我收到以下错误:

  

成员修饰符'static'必须先于   会员类型和名称

  

方法必须具有返回类型

3 个答案:

答案 0 :(得分:10)

方法声明必须始终遵循以下模式:

[modifiers] returnType methodName([parameters])

没有关于修饰符顺序的规则,但它们必须始终位于返回类型之前。

我不认为有任何标准订单,人们只是随心所欲......我个人更喜欢先放入访问修饰符(publicprivate等),然后是static修饰符(如果有),然后是virtualabstractoverride修饰符(如果适用)。

有关详细信息,请参阅C#规范(第10.6节)

答案 1 :(得分:5)

问题是void不是修饰符 - 它是返回类型。所有修饰符都必须在返回类型之前。

我很确定 是一个用于排序真正修饰符的约定,但我不知道它在哪里记录。

我总是先写下辅助功能(公共等)。

答案 2 :(得分:1)

方法修饰符没有特定的顺序。

以下是C#标准规范的正式语法......

使用方法声明声明方法:
方法声明:
method-header method-body

方式报头:
属性 opt 方法修饰符选择部分选择 返回类型 成员名称类型-parameter列表选择  (formal-parameter-list opt )type-parameter-constraints-clauses opt

****方法改性剂:****

公共
保护
内部
私人
静态
虚拟
密封
覆盖
抽象
EXTERN
返回型:
键入
无效
构件名:
标识
接口类型。标识符