-1

我有这个代码:

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),我只想要一种能够提供较少参数的方法,因此如果我提供的参数较少,代码将忽略参数,只会转到最后一行

4

1 回答 1

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();
        }
    }
}

假设您将始终传递至少两个值,一个 fortextfont和一个 for text[0]

于 2013-11-10T23:28:58.893 回答