本文导读目录:
2、宏基4752g光驱换固态硬盘教程(大家我的4752g能加装固态硬盘吗,具体怎么做好)
3、贵族音箱跳线(音箱用跳线喇叭线扦高音端和中低音端有何不同)
![](/tutu9/161.png)
C#锐利体验之第八讲索引器与操作符重载?C中索引器的作Yòng和用法
本文Mù录C#锐利体验Zhī第八讲索引器与操作符重载C中索引器的作用和用法如何关闭WindowsSearch索Yǐn器C#锐利体验Zhī第八讲索引器与操作符重载索引器索引器(Indexer)是C#引入的一个新型的类成员它使Děi对象可以像数组那样被方便直观的引用索引器非常类似于我们Qián面讲到的属性但索引器可以有参数列表且只能作用在实例对象上而不能在类上Zhí接作用下面是典型的索引器的设计我们在这里Hū略了具体的实现classMyClass{???publicobjectthis???{???????get???????{????????2025年1月华为路由 a1 lite(dior手机)???//取数据???????}???????set????????{???????????//存数据???????}???}}索引器没Yǒu像属性和方法那样的名字关键字this清楚地表达了索引器引用对象的特征和属性一样value关键字在set后的Yù句块里有参数传递意义实际上从编译后的IL中间语言代码来看上面这个索引器被实现为classMyClass{???publicobjectget_Item(intindex)???{?????????//取数据???}???publicvoidset_Item(intindexobjectvalue){//存数据???}}由于我们的索引器在背后被编译成get_Item(intindex)和set_Item(intindexobjectvalue)两个方法我们甚至不能再在声明实现索引器的类里面声Míng实现这两个方法编Yì器会对这样的行为报错这样隐含实现的方法同样可Yǐ被我们进行调用继Chéng等操作和我们自己实现的方法别无二致通晓C#语言底层De编译实现为我们下面理解C#索引Qì的行为提供了一个很好的基础和方法Yī样索引器有种存取保护级别和种继Chéng行为修饰以及外部索引器这些行为同方Fǎ没有任何差别这里不再赘述唯一不同的是索引器不能为静态(static这在对象引用的语义下很容易理解值得注意的是在覆盖(override实现索引器时应该用base来存取Fù类的Suǒ引Qì和属性De实现一样索引器的数据类型同时WèigetYù句块DeFǎn回类型和set语句块中value关键字的类型索引器的参数列表也Shì值得注意的地方索引的特征使得索引器必Xū具备至少一个参数该参数位于this关键字之后的中括号内Suǒ引器的参数也只能Shì传值类型不可以有ref(引Yòng)和out(输出修饰参数De数据类型可以是C#中的任何数据类型C#根据不同的参数签名来进行索引器De多态辨析中括号内的所有参数在get和set下都可以引用而value关键字只能在set下作为传递参数下面是一个索引器的具体的应用例子它对我们理解索引器的设计和应用很有帮助usingSystem;classBitArray{int+?);}}编译并运行程序可以得到下面的输出TrueFalseTrueFalseTrueFalseTrueFalseTrueFalse上面的程序通过索引器的使用为用户提供了一个Jiè面友好的bool数组Tóng时又大大降低了程序De存Chǔ空间代价Suǒ引器通常用于对象容器中为其内的对象提供YǒuHǎo的存QǔJiè面这也是为什么C#将方法包装成索引器的原因所在实际上我们可Yǐ看到索引器在Framework类库中有大量的应用操作符重载操作符是C#中用于定义类的实例对象Jiàn表达式操作的一种成员和索引器类似操作符仍然是对方法实现的一种逻辑界面抽象也Jiù是说在编译成的IL中间语言代码中操作符仍然是以方法的形式调用的在类内定义操作符成员又叫操作符重载C#中的重载操作符共有三种一元操作符二元操作符和转换操作符并不是Suǒ有的操作符都可以重载Sān种操作符都有相应的可重载Cāo作符集列于下表一元操作符+!~++truefalse二元操作符+*/%&|^《《》》==!=》《》=《=转换操作符隐式转换()和显式转换()重载操作符必须是public和static修饰的否则会引起编译错Wù这在操作符的逻辑语义Xià是Bù言而喻的父类的重载操作符会被子类继承但这种继承没有覆盖隐藏Chōu象等行为不能对重载操作符进行virtualsealedoverrideabstractXiū饰操作符的参数必须为传值参数我们下面来看一Gè具体的例子usingSystem;classplex{double?rv;?//r+vipubliomplex(doublerdoublev){thisr=r;thisv=v;}publicstatiomplexoperator+(plexaplexb){returnnewplex(ar+brav+bv);}publicstatiomplexoperator(plexa){returnnewplex(arav);}publicstatiomplexoperator++(plexa){?doubler=ar+;?doublev=av+;returnnewplex(rv);}publicvoidPrint(){ConsoleWrite(r+++v+i);}}classTest{publicstaticvoidMain(){plexa=newplex();plexb=newplex();plexc=a;cPrint();plexd=a+b;dPrint();aPrint();plexe=a++;aPrint();ePrint();plexf=++a;aPrint();fPrint();}}编译程序并运行可得Dào下面的输出+i+i+i+i+i+i+i我们Zhè里实现了一个+号二元操作符一Gè号一元操作符(取负值和一个++一元操作符注意这里我们都Mò有对传进来的参数作任何改变这在参数是引用类型的变量是尤其重要虽然重载操作符的参数只能Shì传值方式而我们在返回值时往往需要new一个新的变量除LiǎotrueHéfalse操作符这在重载++和操作符时尤其显得重要也就是说我们做在a++时我们将丢弃YuánLái的a值而取代的是新Denew出来的值给a!值得注意的是e=a++或f=++aZhōnge的值或f的值根本与我们重载的操作符返回值没有Yī点联系,前置和Hòu置的行为不难理Xiè操Zuò符重载对返回值和参数类型有着相当严格的要求一元操作符中只有Yī个参数操作符++和返回值类型和参Shù类型必须和声明该操作符的Lèi型一样操作符+!~的
Shēn数Lèi型必须Hé声明该操Zuò符的Lèi型一样返回值类型可以任意true和false操作符的参数类型必须和声明该操作符的类型一样而返回值类型必须为bool而且必须配对出现也就是说只声明其中一个是不对的Huì引起编译错误参数Lèi型的不同会导致同名的操作符的重载实际上这是方法重载的表现二元操作符参数必须为两个而且两个必须至少有一Gè的参数类型为声明该操作符的Lèi型返回值类型可以任意有三对Cāo作符也需要必Xū配对声明出现它们是==和!=》和《》=Hé《=需要注意的是两个参数的类型不同虽然类型相同但顺序不同都会Dǎo致同名的操作符的重载Zhuàn换操作符为不同类型之间提供隐式转换和显式转换主要用于方法调用转型表达和赋值操作转换操作符对其参数类型(Pī转换类型和返回值类型(转换类型也有严格的Yào求参数类型和Fǎn回值类型不能相同且两者之Jiàn必须至少有一个和定义操作符的类型相同转换操作符必须定义在被转换类型或转Huàn类Xíng任何其中一个里面不能对系统定义过的转换操作进行重新定Yì两个类型也都不能是object或接口类型两者之间不能有直接或间接的继承关系Zhè三种情况系统已经默认转换我们来看一个例ZǐusingSystem;publicstructDigit{bytevalue;publicDigit(bytevalue){if(value《||value》)thrownewArgumentException();thisvalue=value;}publicstaticimplicitoperatorbyte(Digitd){returndvalue;}publicstaticexplicitoperatorDigit(byteb){returnnewDigit(b);}}上面的例子提供了Digit类型和byte类型之间的隐ShìZhuàn换和显式转换从Digit到byte的转换为隐式转换转Huàn过程不会因为丢失任何信息而抛出异常从byte到Digit的转换为显式转换转换过程有可能因丢失信Xī而抛出异常实Jì上这Yě为我们揭示了什么时候声明隐Shì转换
什么时候声明显示转换的设计原则不能对同一参数类型同Shí声明隐式转Huàn和显式转换隐式转换和显式转换Wú需配对使用虽然C#推荐这样做lishixinzhi/Article/program///C中索引器的作用和用法作用:Tā可以使得像数组那样对对象使用下标,用法:索引器的签名由其形参的数量和Lèi型组成,它不包括索Yǐn器类Xíng或形参名,它提供了通过索引方式方便地访问类的数据信息的方法要声明类或结构上的索引器索引器为Wài部索引器,因为外部索引器声明不提供任何实际的实现,如果在同一类中声明一个以上的索引器,鼠标点击“服务”下一Bù。
C#锐利体验之第八讲索引器与操作符重载
dior手机宏基g光驱换固态硬盘教程(大家我的g能加装固态硬盘吗,具体Zěn么做好
大家我的g能加装固态硬盘吗,具体怎么做好
2025年1月华为路由 a1 lite(dior手机)宏基G可以加装固态硬盘,买块东ZhīQG直接安装到原硬盘位即可。如果担心容量不够用,Kè以拆掉光驱换成硬盘托架安置原有的机Xiè硬盘。光驱如果还需使用,可以另买USB转笔记本光驱的易驱线外接使用。
怎么把笔记本的光驱改装成固Tài硬盘
dior手机贵族音箱跳线(音箱用跳线喇叭线扦高音端和中低音端有Hè不同
![](/tutu9/45.png)
音箱用Tiào线喇叭线扦Gāo音端和中低音端有何不同
最主要就看你具体用的是什么跳线了...Dàn理论上..把喇Bā线插在高音接线柱上由跳线连接中低音喇叭的,一般高音部分出来的声音会Bǐ较粗声,比较冲点,中低音好不好就全看用的跳线的素质...喇叭线由Zhōng低音接线柱过跳线接高音的,声音会相对细腻些柔和些..但具体也是得看跳线的素Zhì和风格。
2025年1月华为路由 a1 lite(dior手机)贵族音箱sc音箱用什么跳线好
![](/tutu9/288.png)
华为路由 a1 lite的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于dior手机、华为路由 a1 lite的信息别忘了在本站进行查找喔。