4

我想this用作类方法的默认值,如下代码:

public class Article
 {
    public int Id;//PK
    public String Author;//can be empty=anonymous
    public int? ToPublishDate;
    public String Summery;
    public String Content;
    public int RegDate;
    public Boolean Publish;

    private Boolean write(Article article=this,long position)
    {
        return true;
    }
 }

但是this给我这个错误:

'article' 的默认参数值必须是编译时常量。

为什么会发生此错误,我该如何解决?

4

1 回答 1

12

您可以将默认值设置为 null,然后在方法中重置其默认值:

private Boolean write(long position, Article article=null)
{
    article = article ?? this;
}

(另请注意,所有非默认参数都必须位于任何默认参数之前。)

于 2013-05-03T04:57:21.243 回答