CodeWars C#Kata绊倒了

时间:2015-08-13 15:05:53

标签: c#

“以下代码未正确执行,请尝试找出原因。”

public class CustomMath {
public static int multiply(int a, string b) {
    return a * b;
}
}

这是我的解决方案:

public class CustomMath 
{
    Int i = 1;

    public static int multiply(int a, int b) 
    {
    return a * b;
    }
}

我还在开始关注运营商超载。仍然抓住失败,所以我想我仍然没有看到它或没有理解使用运算符重载的东西。操作员是否重载了我唯一的问题,还是关闭了我的返回语法?

using system;

public class CustomMath
{
    public static int operator *(int a, string b) 
    {
        return a * b;
    }
}

所以我正在研究二元运算符,非常确定我的问题是我没有正确表达int和字符串。

1 个答案:

答案 0 :(得分:0)

您的运算符重载将不起作用,因为为了使乘法运算符重载,至少有一个操作数必须是用户定义的类型。

问题是,你根本不需要超载。 .NET框架中有一些方法专门用于从字符串中“提取”一个整数,这是你在乘以任何东西之前应该做的。有两种简单的方法可以实现此目的:int.Parseint.TryParse。只需查看MSDN文档,了解它们的工作原理,并在特定场景中选择最佳。

这里有int.Parse

string s = "5";
int i = int.Parse(s);
int j = i + 10 // At this point j = 15