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。
从你得到的错误中你应该明白函数签名是错误的,你需要将b (string)的类型更改为int。所以你的代码应该是:
public class CustomMath
{
public static int multiply(int a, int b)
{
return a * b;
}
}
操作符重载不起作用,因为为了重载乘法操作符,至少有一个操作数必须是用户定义的类型。
问题是,你根本不需要重载。在。net框架中有专门设计的方法来从字符串中"提取"一个整数,这是你在做任何乘法之前应该做的。实现这一目标有两种简单的方法:int.Parse
和int.TryParse
。只需查看MSDN文档,了解它们是如何工作的,并在您的特定场景中选择最好的。
int.Parse
的作用:
string s = "5";
int i = int.Parse(s);
int j = i + 10 // At this point j = 15