C#屬性與索引器怎樣設(shè)置默認(rèn)值

c#
小樊
82
2024-10-24 01:19:22

在C#中,屬性(Property)和索引器(Indexer)都不能直接設(shè)置默認(rèn)值。但是,你可以通過(guò)以下方法實(shí)現(xiàn)類似的效果:

  1. 對(duì)于屬性,你可以在類的內(nèi)部使用一個(gè)私有的靜態(tài)字段來(lái)存儲(chǔ)默認(rèn)值,然后在屬性的get和set方法中使用這個(gè)默認(rèn)值。這樣,當(dāng)你不顯式地為屬性賦值時(shí),它將使用默認(rèn)值。
public class MyClass
{
    private static int _defaultValue = 0;

    public int MyProperty
    {
        get { return _defaultValue; }
        set { _defaultValue = value; }
    }
}
  1. 對(duì)于索引器,你可以使用一個(gè)私有的靜態(tài)字段來(lái)存儲(chǔ)默認(rèn)值,然后在索引器的get和set方法中使用這個(gè)默認(rèn)值。這樣,當(dāng)你不顯式地為索引器賦值時(shí),它將使用默認(rèn)值。
public class MyClass
{
    private static int[] _defaultValues = new int[10];

    public int this[int index]
    {
        get { return _defaultValues[index]; }
        set { _defaultValues[index] = value; }
    }
}

請(qǐng)注意,這種方法并不是真正的設(shè)置默認(rèn)值,而是在獲取屬性或索引器值時(shí)提供一個(gè)默認(rèn)值。如果你需要在創(chuàng)建類的實(shí)例時(shí)設(shè)置默認(rèn)值,你可以在構(gòu)造函數(shù)中進(jìn)行設(shè)置。

0