C#中的函数重载是个好主意吗?

WDU*_*DUK 0 c#

所以我有一种情况,根据我想要的最终结果,我需要不同数量的函数参数.

我是C#的新手,并且听说过重载函数,这不是我以前见过的(我从JavaScript开始).

但它看起来有点脏,即使它确实有效,也不是一个好的做法.使用重载函数通常不是一个好主意,我可能会做更多工作的替代方案,但重载会让生活更轻松.

使用多个具有相同名称的方法感觉非常不舒服.这些是标准功能和可接受的代码实践吗?或者它可能导致未来的一些混乱问题,我的缺乏经验还不知道,因此我应该避免它?

Ωme*_*Man 5

功能过载.

命名实际上是方法重载.C#与返回值的方法和不返回值的方法没有直接的区别.因此方法.

但它看起来有点脏

它是语言的一个关键组成部分,这是一种常见的做法,绝对不会令人不悦.

即使它确实有效,也不是一个好的做法.

该想法是为消费者提供不同的变体.一个消费者可能只有X型才能使用,而只提供Y型.通过提供更多,库和/或实例更灵活.此外,通过让消费者转换数据以使其进入方法,它可以解决故障点.

(我从JavaScript开始).

不要尝试以习惯的语言风格编程.使用所设计的任何新语言的特定功能.通过尝试在C#中使用Java或在C#中使用Ruby是愚蠢的.所有语言都有自己的设计点...程序语言,而不是编程风格.

只是感觉非常不舒服,有多个同名的方法.

来自一种非类型安全的语言,这是一种可以理解的反应.但请记住,编译器正在强制执行安全性,以便小部件X仅与小部件X匹配; 这是一个真正的功能,而不是一个噱头.

坦率地说,当我看到不提供多次重载的代码时,我将其视为开发人员的懒惰或某些上帝可怕的时间紧缩,因此匆忙的代码.

不要太过分了......只需提供足够的重载就可以让大多数消费者使用该类.

或者它可能在未来导致一些混乱的问题

如果一个不一致,可能是的.

因此,在变量的位置上保持一致.如果int启动方法,另一种方法也应该以相同的方式开始int; 如果提供.不要混合订单.