gpt4 book ai didi

c# - 隐式运算符 - 什么时候是好/坏主意?

转载 作者:太空狗 更新时间:2023-10-29 22:29:17 24 4
gpt4 key购买 nike

我正在开发一个应用程序,其中方向(向前/向后)的概念非常重要。

问题是在整个代码库中存在着几种不同的约定:在某些地方它是 true/false,而在其他地方则是 +1/-1。

为了尝试将它们组合在一起,我创建了:

public class DirectionClass
{
public bool Forwards { get; set; }
public double Sign { get; set; }
public EDirection { get; set; }
//plus associated constructor overloads, implementing IEquatable, etc.
}

我现在想知道隐式转换是好是坏:

public static implicit operator DirectionClass(double sign);
public static implicit operator DirectionClass(bool forwards); //etc..

以及是否有我可能遇到的经典陷阱。

最佳答案

基本上,在设计标准库时,隐式转换总是一个坏主意。因为如果您突然发现隐式转换中断的情况,您将无法轻易修复它,因为有太多人依赖它。

另一方面,如果您负责整个代码库(或至少您的团队)。追求让您的生活更简单的事情。

如果你发现一个失败的案例:

  • 你会学到一些东西(这总是好的)
  • 您可以退后一步并修复代码

关于c# - 隐式运算符 - 什么时候是好/坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1782503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com