亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 C# 中是否可以實例化一個具有值的類?

在 C# 中是否可以實例化一個具有值的類?

C#
慕的地6264312 2022-12-24 14:11:14
在 C# 中是否可以實例化一個具有值的類?也就是說,如果一個類包含一個數組,是否可以創建一個類,在類實例化時傳遞所需數組的長度?
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

是的。


最明顯的方法是使用類的構造函數:


class X

{

    public int[] MyArray

    {

         get;

         set;

    }


    public X(int arrayLength)

    {

         MyArray = new int[arrayLength];

    }

}

您現在可以使用以下方法實例化它:


X myX = new X(5);

您還可以使用它的屬性實例化一個類:


class X

{

    public int[] MyArray

    {

         get;

         set;

    }


    public int ArrayLength

    {

        set

        {

             MyArray = new int[value];

        }

    }

}

并按如下方式調用它:


X myX = new X { ArrayLength = 5};

我會選擇第一個選項......


查看完整回答
反對 回復 2022-12-24
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

是的


public class MyClass

{

    private readonly string[] _myArray;


    public MyClass(int arrayLength)

    {

        _myArray = new string[arrayLength];

    }

}



var myClass = new MyClass(5);


查看完整回答
反對 回復 2022-12-24
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您可以將長度作為構造函數參數傳遞。構造函數看起來像一個與類同名的方法,但沒有返回類型(甚至沒有void)。


public class MyClass

{

    public MyClass(int arrayLength)

    {

        MyArray = new string[arrayLength];

    }


    public string[] MyArray { get; }

}

此解決方案使用 getter only 屬性。您可以在構造函數中或使用屬性初始化程序對其進行初始化,但是一旦創建了對象,它就是只讀的。


您可以像這樣創建一個MyClass對象:


var obj = new MyClass(10);

string firstElementOfArray = obj.MyArray[0];

string lastElementOfArray = obj.MyArray[9];

但是請選擇比MyClassor更好的名字MyArray。真實姓名必須提供信息。一個類可以命名為StudentorVehicle或Invoice。該數組可以命名為Grades,Passengers或InvoiceLineItems。


但是根據您的要求,該數組可以只是一個私有字段,不能從類外部訪問。


查看完整回答
反對 回復 2022-12-24
  • 3 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號