将“this”作为类方法的默认值

时间:2013-05-03 04:54:23

标签: c#

我想使用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'的默认参数值必须是编译时常量。

为什么会出现此错误,我该如何解决?

1 个答案:

答案 0 :(得分:12)

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

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

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