C#覆盖和访问修饰符关键字优先顺序

C#覆盖和访问修饰符关键字优先顺序,c#,keyword,C#,Keyword,对于方法的覆盖关键字和访问修改器(公共,私有等),首选哪种顺序?以下两项似乎编译并执行相同的操作: public override string ToString () { return "access modifier first"; } 在Java中,关键字的顺序通常是强制执行的,因此这种灵活性似乎令人吃惊。显然,这种灵活性也存在于Java中(static public void main(String[]args)works…。这完全是一个偏好问

对于方法的
覆盖
关键字和访问修改器(
公共
私有
等),首选哪种顺序?以下两项似乎编译并执行相同的操作:

    public override string ToString ()
    {
        return "access modifier first";
    }


在Java中,关键字的顺序通常是强制执行的,因此这种灵活性似乎令人吃惊。显然,这种灵活性也存在于Java中(
static public void main(String[]args)
works…。

这完全是一个偏好问题,但是
public override String ToString()
更常见。

我甚至不知道可以先做
override
。考虑到VisualStudio自动完成到
公共覆盖
,我要说的是,坚持这一点。

ReSharper是一个VS插件,它提供了几个编码助手,如扩展自动完成,它首先放置了访问修饰符。这表明,即使C#规范更加灵活,大多数人也希望这样看


但这很奇怪,因为要对方法使用ReSharper的自动完成,您需要输入“override”,然后IntelliSense会给出一个可重写方法的列表。然后,当您选择一个时,它会重新构造定义,使访问修饰符位于第一位。

实际上没有什么区别。通常,访问修饰符被指定为函数定义中的第一个关键字。在VS中,它通常会为您重新排序关键字。

另一方面,今天我了解到,关键字的顺序在Java中是强制执行的。(你说的是访问修饰符+
静态
+返回类型吗?因为
@Override
是Java中的注释,所以它自然会出现在整个方法声明之前。)Visual Studio自动完成对
公共覆盖
的覆盖方法。我可能会同意这一点。JavaScript不是Java,这是否同样令人吃惊?C#和Java是两种不同的语言,有两种完全不同的语法。@BoltClock实际上我想我对Java的看法是错的。我将更新这个问题。另请参阅旧线程,您不需要重新精简。使用just VS,您可以输入
override
,这将为您提供一个要覆盖的内容列表。选择一个后,它将扩展为
公共覆盖字符串ToString()
。很高兴知道。我从VS 2005开始使用ReSharper,所以对我来说,它已经成为IDE的一部分,以至于VS和ReSharper在上面所做的都是模糊不清的。
    override public string ToString ()
    {
        return "override keyword first";
    }