我正在进行文字冒险,并使用我在网上找到的一些代码,我有打字机式打印。所以我在一个函数中有这个代码,除了传递代码进行类型化之外,我还试图传递类型之间的延迟。现在我的问题是我并不总是想要延迟参数,我尝试搜索int变量的默认值,看看是否使用if语句检查变量是否不是默认值,如果是不是默认它会使用传入的内容。除了它仍然无法工作,它仍然希望我传递一些东西。他们无论如何要让它发挥作用吗?
对不起,如果我的问题令人困惑,我不是最擅长制作非混淆的句子......(见?)
答案 0 :(得分:1)
您可以使用Optional Arguments:
public void MovePerson(int x, int y, int delay = 300)
{
}
在这个完全构成的函数中,如果在调用函数时没有指定值,则可以构建默认延迟,该延迟将设置为300.
MovePerson(10, 20); //Delay for 300
MovePerson(10, 20, 100); //Delay for 100
答案 1 :(得分:0)
public void Task (String optional = "default") {
...
}
答案 2 :(得分:0)
只需使用默认参数
int Multiply (int a = 10, int b = 20)
{
return a * b;
}
或者您也可以重载函数
int Multiply ()
{
return 10 * 20;
}
int Multiply (int a, int b)
{
return a * b;
}
答案 3 :(得分:0)
解决此问题的传统方法是使多个方法重载。这是一个例子:
public class Foo
{
public void Bar(string value)
{
Console.WriteLine(value);
}
public void Bar()
{
Bar("I have no value :(");
}
}
您可以拨打Bar("hello world")
或Bar()
,并使用默认值。
C#已经引入了语法糖,这使得这更容易,因为它是如此常见的模式,通过使用可选参数:
public void Bar(string value = "I have no value :(")
{
Console.WriteLine(value);
}
这将最终以(大致)相同的方式工作,但更容易输入。