gpt4 book ai didi

c# - 试图删除涉及 int 和 long 的构造函数中的不明确调用

转载 作者:行者123 更新时间:2023-11-30 18:26:22 26 4
gpt4 key购买 nike

“以下方法或属性之间的调用不明确:'fInt.fInt(int, bool)' 和 'fInt.fInt(long, bool)'”

这是我的两个构造函数:

public fInt(int i, bool scale = true)
{
if (scale) value = i * SCALE;
else value = i;
}

public fInt(long i, bool scale = true)
{
if (scale)
{
if(i > long.MaxValue / SCALE || i < long.MinValue / SCALE)
Debug.LogError("fInt Overflow on creation with scaling");

value = i * SCALE;
}
else value = i;
}

下面是我如何使用隐式转换调用带有 int 的函数:

fInt i = 8;

我希望能够同时使用 int 和 long,这样我就可以避免在不需要时进行额外的检查。关于如何解决这个问题的任何想法?我是否只需要这样做:

fInt i = (int)8;
fInt i2 = (long)9;

如果可以避免的话,我宁愿不用额外的打字。这是我的隐式转换:

//implicit int to fInt
public static implicit operator fInt(int i)
{
return new fInt(i);
}

//implicit long to fInt
public static implicit operator fInt(long i)
{
return new fInt(i);
}

最佳答案

这似乎是 Unity3D 编辑器中的错误...因为代码在 Visual Studio 中运行良好。它仅在第二个参数可选时混合签名。

关于c# - 试图删除涉及 int 和 long 的构造函数中的不明确调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619083/

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