问题标签 [implicit]

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 投票
5 回答
2268 浏览

c# - 为什么 AC# 类可以隐式和显式地从一个接口继承?

今天碰巧发现一个C#类可以隐式和显式地继承一个接口。这让我很惊讶。如果 C# 以这种方式工作,那么一个实例在以不同方式引用时可能表现不同。

上面的代码运行并输出

我相信 C# 的这种设计会使行为不一致。一个 C# 类可能必须以隐式或显式方式从一个接口继承,但不能同时继承。

为什么 C# 以这种方式设计有什么原因吗?

0 投票
14 回答
73045 浏览

c# - 我们可以在 c# 中定义枚举的隐式转换吗?

是否可以在 c# 中定义枚举的隐式转换?

可以做到这一点的东西?

如果不是,为什么不呢?

0 投票
3 回答
2887 浏览

c# - 为什么要使用显式接口实现来调用受保护的方法?

codeplex中浏览 ASP.NET MVC 源代码时,我发现有一个类显式实现接口是很常见的。显式实现的方法/属性然后调用另一个具有相同名称的“受保护的虚拟”方法/属性。

例如,

我现在确定这种编程有什么好处。对我来说,我更喜欢只隐式实现接口 IHttpHandler。

我猜作者只是不希望MvcHandler有一个公共属性IsResuable。属性IsReusable只能在MvcHandler的实例被视为IHttpHandler时使用。不过,我不确定作者为什么会这样。

有人知道这种接口实现方式的更多好处吗?

0 投票
5 回答
3007 浏览

c++ - 为什么编译器为 L"" 的隐式类型转换选择 bool 而不是字符串?

最近引入了应用程序开始失败的方法的重载。最后追踪它,新方法在我没想到的地方被调用。

我们有

它已更改,以便在存储 bool 值时我们使用相同的字符串(字符串的内部数据存储)

L"" 的问题在于它是隐式转换的,以前它很高兴成为 std::wstring,但它不喜欢成为布尔值。MSVC 编译器不会抱怨或发出警告,所以我担心即使我“修复”了 setValue(L"empty", L""); 成为

其他人可能会稍后再使用 setValue(L"empty", L"" ); 并且不得不再次追查这个问题。

我们曾考虑在方法上使用显式,但它不是此用法的有效关键字。有没有办法让编译器抱怨这个,或者以其他方式阻止这个问题?否则,我正在考虑更改采用 bool 的方法的名称,以确保它不会做出错误的猜测。

0 投票
2 回答
326 浏览

c++ - 参数或返回类型隐式转换在 C++ 中是否优先?

如果我有代码:

调用f的哪个重载,为什么?

0 投票
4 回答
1377 浏览

.net - 隐式运算符和 TypeConverters 是否等效?

在我看来,实现隐式运算符与 TypeConverter 相比非常容易,因此我假设它们不等效,因为 TypeConverters 在框架中很流行(请参阅任何扩展 FrameworkElement 的内容)。

但为什么?创建 string->object 和 object->string 隐式运算符并利用序列化中的那些(XML 和 XAML)不是更容易吗?

是雅格尼吗?单一责任?因为您不能在接口中指定运算符重载?

0 投票
4 回答
2015 浏览

c# - .Net 隐式转换指南

关于何时可以、应该或不应该定义用户定义的隐式转换的一般准则是什么?

我的意思是,例如,“隐式转换不应该丢失信息”、“隐式转换不应该抛出异常”或“隐式转换不应该实例化新对象”。我很确定第一个是正确的,第三个不是(或者我们只能隐式转换为结构),我不知道第二个。

0 投票
1 回答
826 浏览

java - 用Scala隐式包装的Java接口实现的工厂方法?

我正在使用 Scala 隐式为 Java 接口定义一个丰富的包装器:

在伴生对象中,我定义了隐式转换和apply工厂方法:

有了这个,我可以实例化接口的 Java 实现并像使用它一样RichThing(由于隐式转换):

我还可以RichThing使用工厂方法创建一个(由于apply方法):

我想做的是以相同的方式实例化接口的任意 Java 实现。这不起作用,因为 Scala 然后寻找实现的伴随对象但​​找不到:

我可以为 Java 实现创建一个 Scala 伴随对象:

但关键是要使该接​​口适用于任何(特别是未知的)实现。

有没有办法实现这一点?例如,基于对象中的隐式转换为 Java 实现动态创建 Scala 伴生RichThing对象?

或者从 Java 端创建 Scala 伴生对象,也许在抽象类中?

0 投票
5 回答
1302 浏览

c# - 字符串和整数,隐式和显式

有一个同事问我这个问题,在我头脑混乱的状态下,我没有答案:

为什么你可以这样做:

但不是:

如果在concatenating时存在字符串转换的隐式转换/操作,为什么在将其分配为字符串时不一样?(当然,不做一些运算符重载)

0 投票
2 回答
2081 浏览

scala - 如何在 Scala 中将元组隐式转换为向量

我希望能够将数字元组(Ints 和 double)隐式转换为向量对象。

假设一个带有 + 方法的 Vector 类

我的目标是让以下代码工作。

我可以通过Int以下方式使用它

但是当我添加双精度转换时它失败了

根据 Andri 的建议尝试加倍

我需要做什么才能使其正常工作?