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

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

C#中的索引器和數組有什么不同?

C#中的索引器和數組有什么不同?

C#
一只名叫tom的貓 2019-04-13 09:07:25
索引器在使用的時候,是不是可以無限賦值?比如:數組事先還需要聲明長度,索引器需不需要聲明呢?索引器的用法好像和數組有什么區別?比如:MyClass my=new MyClass();my[0]=123;my[1]=456;my[2]=789只聲明了一個my對象,那么上面的哪三個數據存到那里了?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

一般來講,實現了索引器的類都是集合類或包含有集合類。索引器可以讓你方便的引用這個集合中的數據。

索引器無需聲明,在聲明了索引器的類上可以直接使用。

索引器跟數組的區別主要在


  1. 索引器的索引值(Index)類型不一定為整數

    用來訪問數組的索引值(Index),其類型一定為整數,然而索引器可以定義其他類型的索引值。

  2. 索引器允許重載(Overloading)

    一個類并不限制只能夠定義一個索引器,只要索引器的函數簽名不同,一個類就可以擁有很多個索引器,你可以重載它的功能。

  3. 索引器不是一個變量

    索引和數組不同的地方在于,索引器并沒有直接對應引用數據存儲的地方,而數組則有。索引器有get訪問器與set訪問器,用來指明要讀取或寫入索引器元素時,需要執行的代碼。


在你的例子中,MyClass 內部有一個int數組或集合,你使用的索引實際上是去引用了內部集合類的。


 


查看完整回答
反對 回復 2019-04-14
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

索引器是class或struct的屬性方法。通過索引器,可以像數組一樣,使用實例內部的數據。
以下的類定義了一個索引器(Indexer)

public class MyClass
{
private int[] innerData;
public MyClass()
{
this.innerData = new int[100];

}
//索引器 Indexer

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

}

}
實例化MyClass

MyClass my=new MyClass();
通過索引器給賦值
my[0]=123;
my[1]=456;
my[2]=789
從類定義可知,123被放到實例內部的innerData[0],456存放到了innerData[1]……依次類推。



查看完整回答
反對 回復 2019-04-14
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

屬性用于以可驗證的方式訪問私有成員變量。索引器用于以更便捷的方式訪問對象中包含的成員數組或集合。
區別:
1、屬性名可自定義,索引器必須以this命名。
2、屬性可以為實例或靜態,索引器必須是實例的。
3、索引器有索引參數列表,而屬性沒有。

查看完整回答
反對 回復 2019-04-14
  • 3 回答
  • 0 關注
  • 795 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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