我有这段代码:
var obj;
if (!instance_exists(oTextbox)) {
obj=instance_create(0,0,oTextbox)
obj.textfont=argument0
obj.text[0]=argument1
obj.text[1]=argument2
obj.text[2]=argument3
obj.text[3]=""
}
它是一种绘制文本的简单方法,但是当我用较少的参数调用它时,我得到一个编译错误(预期4个参数提供3), 我只是想要一种能够提供更少参数的方法,因此如果我提供的参数较少,代码将会忽略,并且只会转到最后一行
答案 0 :(得分:0)
不太确定你的意思,你可以尝试varargs
传递可变数量的参数并在使用它们时检查长度:
public void DrawText(Object... args)
{
var obj;
if (!instance_exists(oTextbox)) {
obj=instance_create(0,0,oTextbox);
int len=args.Length;
obj.textfont = args[0].toString();
obj.text[0] = args[1].toString();
if(len>2){
obj.text[1] = args[2].toString();
}
if(len>3){
obj.text[2] = args[3].toString();;
}
if(len>4){
obj.text[3] = args[4].toString();
}
}
}
假设您始终至少传递两个值,一个用于textfont
,另一个用于text[0]
。