问题标签 [overloading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3054 浏览

c# - typedef 等效于 c# 中的重载

我有一堆代码,其中包含许多具有不同含义的整数(我宁愿使用通用解决方案,但对于一个具体示例:每月的一天与一年中的月份与年份等)。我希望能够根据这些含义重载类构造函数。

例如

现在显然这行不通,但如果我可以定义一个类型(不仅仅是别名),int除了这样的名称之外,它是一个类型:

我可以做我需要的重载,让类型系统跟踪什么是什么。特别是,这将允许我确保值不会混淆,例如从函数返回的值作为年份不用作月份中的日期。

在 c# 中是否有任何方法classstruct包装器可以做到这一点?


如果该解决方案也适用于浮点数和双精度数,那就太好了。

0 投票
5 回答
958 浏览

c++ - 重载、字符串和默认参数

重构遗留代码,我遇到了这个函数(伪代码):

哎呀,看看那个等待溢出的缓冲区。所以我想出了一个使用 std::string 的函数,并认为使用函数重载会很好:

到现在为止还挺好。但是当我尝试用字符串调用函数时:

我收到此错误:

显然,编译器(GCC 4.1.2)努力将 std::string 转换为 char* 以满足第一个函数的参数列表(使用默认值来满足第二个参数),放弃了,但没有尝试第二个功能...

解决这个问题我不会有问题,但我想知道为什么会失败,以及是否有办法让它按预期工作。

0 投票
4 回答
4525 浏览

vb.net - VB.NET 不断向文本框添加一个

我正在尝试创建一个具有按钮和文本框的程序。每次按下按钮时,我都希望它在文本框中添加一个。我不断收到此错误:

重载解决失败,因为没有可访问的“Int”接受此数量的参数

我也是一个巨大的n00b。这是我到目前为止的位置,在此先感谢。

0 投票
7 回答
1213 浏览

c# - .Net 中的方法重载成本

.Net 中的重载方法是否会产生成本?

因此,如果我有 3 种方法,例如:

并且这些方法在运行时根据传递给Calculate方法的内容“动态”调用,这种重载解决方案的成本是多少?

或者,我可以有一个计算并在方法主体中产生差异,但我认为这需要方法在每次调用时评估类型。

有没有更好的方法/设计来解决这个问题而可能没有开销?或者更好的是,处理此类案件的最佳做法是什么?我想有相同的类/方法名,但不同的行为。

编辑:谢谢大家。如果它有任何不同,那就只做一件事。我想知道你有一个用于这些方法的 DLL 和一个用 C# 编写的程序,它允许用户将这些方法添加为 UI 项(无需指定类型)。所以用户添加UI项Calculate(5),然后Calculate(12.5)等,C#app执行这个,还会没有开销吗?

0 投票
5 回答
410 浏览

java - JAR 多重下载

我在一个小程序上有这个代码。小程序工作正常,但我得到了很多不必要的重复下载。特别是,我注意到每个“getResource”都会触发 .JAR 文件的下载。

如何避免这种情况?

0 投票
7 回答
744 浏览

java - 重载真的是在 Java 中获取方法参数默认值的唯一方法吗?

我对 Java 以及 Python 和 PHP 还是很陌生,我习惯于函数参数的默认值。

所以我有编写方法的习惯,这些方法旨在从您只想设置一些值的稍微不同的情况下调用。例如,在我的 PHP 代码中,这很常见,因为我有工厂方法为对象实例提供稍微不同的属性。

在 Java 中,似乎我必须有一个需要所有参数的方法,然后是几个重载的变体,这些变体将调用该方法,其中一些参数设置为默认值,一些参数由调用者提供。这是,好吧,但有时会让我紧张。

我记得在我对 C++ 和 ActionScript 的一些简短考察中,这已经让我很恼火。现在,更有经验的 Java 开发人员是否有一些捷径?

在我看来,从技术上讲,这个问题已经被所有帖子的总和回答为“是的,它是”。我在下面打开了一个 wiki 帖子来收集各种替代解决方案,如果您愿意,请提供。我发现所有这些都非常有用,可以作为典型 Java 结构的灵感和学习示例。

0 投票
1 回答
5596 浏览

ruby - 你如何覆盖 ruby​​ 大小写相等运算符?(===)

我有一个类,我想在 case 语句中与字符串和符号进行比较,所以我认为我只是为我的类覆盖了 ===() 方法,所有这些都是黄金。但是,我的 ===() 方法在 case 语句期间永远不会被调用。有任何想法吗?

这是一些示例代码,以及 irb 会话中发生的情况:

irb(main):010:0> a=A.new("hi")
=> #
irb(main):011:0> case a
irb(main):012:1> when "hi" then 1
irb( main):013:1> else 2
irb(main):014:1> end
=> 2

(它从不打印消息,无论如何都应该返回 true)请注意,理想情况下我想做一个

提前致谢。

0 投票
3 回答
564 浏览

c++ - C++中重载的指针问题?

指针为重载解决带来了一些特殊问题。

比如说,

调用 f(0) 有什么问题?如何修复 f(0) 的函数调用?

0 投票
3 回答
3460 浏览

c++ - C++ - 构造函数重载 - 私有和公共

你能告诉我为什么下面的代码给了我以下错误 -重载“C(int)”的调用是模棱两可的

我认为由于 C(char x) 是私有的,因此只有 C(float) ctor 从外部可见,应该通过将 int 转换为 float 来调用它。

但事实并非如此。

0 投票
3 回答
1730 浏览

java - Java 动态绑定

我正在练习考试,发现了一个让我完全迷失的示例问题。对于以下代码,找到输出是什么:

我有我的想法,但是当我运行 java 时,我得到了完全不同的东西:

前几个还可以,后来真的看不懂了。有人对这个问题有很好的解释吗?

谢谢