微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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,three});
    ,        是。使用params关键字为方法指定的参数将按照在方法调用中指定的顺序放置在params数组中。开发人员通常认为是这样,他们熟悉使用参数的方法,例如String.Format,其中格式值在参数列表中的顺序非常重要。     ,         是;订单被保留。 是;这可以。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。