params关键字是否保证项目与列出的顺序相同?

| 我正在开发一个简单的API,该API可以接受许多IB特性,然后将其应用于配置中。我使用params关键字进行设计,因为通常只需要一种行为,但有时更多。 但是,以正确的顺序应用行为非常重要。
public void Configure(string wow, params IBehaviour[] behaviours) { ... }

Configure(\"oh yes\", new MustHappenFirst(), new MustHappenSecondly());
做这个 从技术上暗示
behaviours
发生的顺序相同 枚举? (按照标准, 不只是在实践上)。 在语义上和直观上传达相同的行为? 谢谢。     
已邀请:
        参数的评估将以从左到右的顺序进行,并将按照该顺序放入数组中。 请注意,如果\“ null \”是行为的有效值,则可能会遇到麻烦:
Configure(\"hello\", null);
来电
Configure(\"hello\", (IBehaviour[]) null);
Configure(\"hello\", new IBehaviour[1] { null } );
所以要小心一点     
        是。当您使用
params
时,编译器仅按参数在程序中列出的顺序将参数转换为数组。在方法中,它们将始终按此顺序排列。 致电至:
Configure(\"wow\", one, two, three);
将始终映射到:
Configure(\"wow\", new[] {one, two, three});
    
        是。使用params关键字为方法指定的参数将按照在方法调用中指定的顺序放置在params数组中。开发人员通常认为是这样,他们熟悉使用参数的方法,例如String.Format,其中格式值在参数列表中的顺序非常重要。     
         是;订单被保留。 是;这可以。     

要回复问题请先登录注册