如果我在c#中定义get而不定义set for属性,会发生什么?

本文关键字:定义 属性 什么 for get 如果 set | 更新日期: 2023-09-27 18:08:19

    public Format format
    {
        get
        {
            if (format == Format.NONE)
            {
                this.findFormat();
            }
            return this.format;
        }
        set
        {
            ;
        }
    }

如果我做这样的事情会发生什么?Set nothing is defined。我这样做是因为我只想做一些处理时,有人想要得到格式。我想设置为默认

如果我在c#中定义get而不定义set for属性,会发生什么?

如果你写一个空的set块,当你试图设置属性时什么也不会发生。

从注释中,

那么,如果我想自己定义get并设置为默认值,我该怎么做呢?

不幸的是,我能想到的唯一方法不是很干净。您需要使用一个备用变量:

private Format format;
public Format Format {
    get {
        if (format == Format.NONE)
        {
            this.findFormat();
        }
        return this.format;
    }
    set {
        format = value;
    }
}