CodeWars C# Kata stumble

本文关键字:stumble Kata CodeWars | 更新日期: 2023-09-27 18:07:59

"下面的代码不能正常执行,试着找出原因。"

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和string。

CodeWars C# Kata stumble

从你得到的错误中你应该明白函数签名是错误的,你需要将b (string)的类型更改为int。所以你的代码应该是:

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

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

问题是,你根本不需要重载。在。net框架中有专门设计的方法来从字符串中"提取"一个整数,这是你在做任何乘法之前应该做的。实现这一目标有两种简单的方法:int.Parseint.TryParse。只需查看MSDN文档,了解它们是如何工作的,并在您的特定场景中选择最好的。

int.Parse的作用:

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