2024年9月索引器的修饰符有哪些(C#中索引器的特点急~)

 更新时间:2024-09-21 09:20:56

  ⑴索引器的修饰符有哪些(C#中索引器的特点急~

  ⑵C#中索引器的特点急~

  ⑶索引器:是C#引入的一个新型的类成员,一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。索引器类型于属性,它们的不同之处在于索引器的访问器采用参数。定义了索引器之后,就可以像访问数组一样,使用运算符访问类的成员。定义索引器的方式与定义属性有些类似,其一般形式如下:》{get{//获得属性的代码}set{//设置属性的代码}}

  ⑷c#中newClass(是什么意思

  ⑸new:英语中是“新的”在C#中newClass():建立一个新的对象。而Class()是对象的构造函数,即执行Class的构造去构造新的Class对象的意思。

  ⑹索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。、索引器的定义C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。定义索引器的方式与定义属性有些类似,其一般形式如下:{getset}修饰符包括public,protected,private,internal,new,virtual,sealed,override,abstract,extern.数据类型是表示将要存取的数组或集合元素的类型。索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串;this表示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的名称。例如:classZ{//可容纳个整数的整数集privatelong;//声明索引器publiclongthis{get{//检查索引范围if(index《||index《=){return;}else{returnarr;}}set{if(!(index《||index《=)){arr=value;}}}、索引器的使用通过索引器可以存取类的实例的数组成员,操作方法和数组相似,一般形式如下:对象名其中索引的数据类型必须与索引器的索引类型相同。例如:Zz=newz();z=;z=;Console.WriteLine(z);表示先创建一个对象z,再通过索引来引用该对象中的数组元素。、接口中的索引器在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器get或set,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器get或set均不能省略;如果只读的,省略set访问器;如果是只写的,省略get访问器。例如:publicinterfaceIAddress{stringthisstringAddressstringAnswer();}表示所声明的接口IAddress包含个成员:一个索引器、一个属性和一个方法,其中,索引器是可读写的。、索引器与属性的比较索引器与属性都是类的成员,语法上非常相似。索引器一般用在自定义的集合类中,通过使用索引器来操作集合对象就如同使用数组一样简单;而属性可用于任何自定义类,它增强了类的字段成员的灵活性。属性索引器允许调用方法,如同公共数据成员允许调用对象上的方法,如同对象是一个数组可通过简单的名称进行访问可通过索引器进行访问可以为静态成员或实例成员必须为实例成员其get访问器没有参数其get访问器具有与索引器相同的形参表其set访问器包含隐式value参数除了value参数外,其set访问器还具有与索引器相同的形参表

  ⑺什么是修饰符修饰符的种类有哪些它们各有什么作用

  ⑻修饰符是用于限定类型以及类型成员的申明的一种符号。种修饰符,按功能可分为三类:访问修饰符、类修饰符、成员修饰符。作用:限定类型以及类型成员

  ⑼override在C#中是什么意思

  ⑽override在C#中是重写的意思。使用override修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。也就是说,用override修饰符重写的基类中的方法必须是virtual,abstract或override方法。

  ⑾谁知道C#中什么是索引器,索引器的实现过程,是否只能根据数字进行索引

  ⑿C#语言一个最令人感兴趣的地方就是类的索引器(indexer。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。本文就会引领你设置类来采用索引器。但是,首先让我们概述下属性这个概念以便了解些必要的背景知识。属性假如你曾经用VB编写过程序,那么你应该很熟悉属性方法才对,所谓属性方法其实就是特殊的类成员,它实现了对私有类域的受控访问。在C#语言中有两种属性方法,其一是get,通过它可以返回私有域的值,其二是set,通过它就可以设置私有域的值。比如说,以下面的代码为例,其间创建了一个FirstName属性,由它控制对私有类成员firstname的访问:classPerson{privatestringfirstname;publicstringFirstName{get{returnfirstname;}set{firstname=value;}}}属性声明可以如下编码:Personp=newPerson();p.FirstName=“Lamont“;Console.WriteLine(p.FirstName);如你你所看到的那样,属性声明倒更像是域声明,只不过它还声明了两个特殊的成员,按照微软的说法就是所谓的访问函数(aessor。当某一表达式的右边调用属性或者属性用作其他子程序(或者函数的参数时即会调用get访问函数。反之,当表达式左边调用属性并且通过隐式传递value参数设置私有域值的情况下就会调用set访问函数。你可以创建只读属性,方法是省略set访问函数,这样任何设置属性的尝试都会产生编译错误。采用索引器的益处下面是它的结构this...{get...{//Getcodesgoeshere}set...{//Setcodesgoeshere}}注:modifier:修饰词,如private,public,protectedorinternalthis:在C#中this是一个特殊的关键字,它表示引用类的当前实例。在这里它的意思是当前类的索引。argumentlist:这里指索引器的参数。说了半天咱们转到正题上来,那么为什么我要兜这个圈子呢?其实,这是因为类的索引器非常像属性,从代码上看也是这样。以下是具有索引器的类示例,通过索引器会返回一个字符串:classSample{publicstringthis{get{return“Youpassed“+index;}}}注意,这里的属性名是this,意思是回引类的当前实例,参数列表包含在方括号而非括号之内。还有,这是一个只读索引器。为了把它改成读/写类型,我又添加了一个set访问函数。在定义索引器的时候,你不一定只采用一个参数。索引器参数可以采用任何类型,不过int是通常采用也是最为合理的类型。同一类中还可能拥有一个以上的索引器(重载。如上定义了Sample类之后,我们就可以把索引器用作某种默认的属性,如下所示:Samples=newSample();Console.WriteLine(s);属性和索引器属性和索引器之间有好些差别:类的每一个属性都必须拥有唯一的名称,而类里定义的每一个索引器都必须拥有唯一的签名(signature或者参数列表(这样就可以实现索引器重载。属性可以是static(静态的而索引器则必须是实例成员。为索引器定义的访问函数可以访问传递给索引器的参数,而属性访问函数则没有参数。接口类似数组的行为常受到程序实现者的喜爱,所以你还可以为接口定义索引器,IList和IDictionary集合接口都声明了索引器以便访问其存储的项目。在为接口声明索引器的时候,记住声明只是表示索引器的存在。你只需要提供恰当的访问函数即可,不必包括范围修饰符。以下代码把索引器声明为接口IImplementMe的一部分:interfaceIImplementMe{stringthis{get;set;}相应实现的类则必须为IimplementMe的索引器具体定义get和set访问函数。以上就是有关索引器的一些基本概述了。现在你应该对索引器在你的开发中所具有的作用有了较深入的了解。classSampleCollection{privateT;publicTthis{get{returnarr;}set{arr=value;}}}//ThisclassshowshowclientcodeusestheindexerclassProgram{staticvoidMain(stringargs){SampleCollectionstringCollection=newSampleCollection();stringCollection=“Hello,World“;System.Console.WriteLine(stringCollection);}}

  ⒀C#中,索引器的作用和用法

  ⒁索引器的两种用法和作用索引器允许您按照与数组相同的方式对类、结构或接口进行索引。有关对接口使用索引器的更多信息,请参见接口索引器。要声明类或结构上的索引器,请使用this关键字,如下例所示:复制代码publicintthis);}}输出-可靠编程提高索引器的安全性和可靠性有两种主要的方法:当设置并检索来自索引器访问的任何缓冲区或数组的值时,请始终确保您的代码执行范围和类型检查。应当为get和set访问器的可访问性设置尽可能多的限制。这一点对set访问器尤为重要。有关更多信息,请参见非对称访问器可访问性(C#编程指南。

  ⒂在使用interface声明一个接口时,只可以使用(修饰符修饰该接口

  ⒃在使用interface声明一个接口时,只可以使用(?public?修饰符修饰该接口。

  ⒄接口的声明,修饰符的使用和类的声明是一致的,(当前,前提类是外部类,不是所谓的内部类,都只能使用public或者什么都不写,默认权限(这里的默认权限不是default,可以理解为friendly,但是java没有这个关键字,但权限上可以理解为default,无论是private还是protected都是不可以的。

  ⒅关于修饰符大小的说明:public》protected》默认》private,用一张表就是如下:

  ⒆attributes(可选:附加的定义性信息。

  ⒇modifiers(可选:允许使用的修饰符有new和四个访问修饰符。分别是:new、public、protected、internal、private。在一个接口定义中同一修饰符不允许出现多次,new修饰符只能出现在嵌套接口中,表示覆盖了继承而来的同名成员。Thepublic,protected,internal,andprivate修饰符定义了对接口的访问权限。

  ⒈identifier:接口名称。

  ⒉base-list(可选:包含一个或多个显式基接口的列表,接口间由逗号分隔。

  ⒊interface-body:对接口成员的定义。

  ⒋接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法、属性、索引器。

  ⒌个接口可从一个或多个基接口继承。

  ⒍接口这个概念在C#和Java中非常相似。接口的关键词是interface,一个接口可以扩展一个或者多个其他接口。按照惯例,接口的名字以大写字母“I“开头。

  ⒎c#类的修饰符有哪些

  ⒏修饰符用于限定类型以及类型成员的申明,C#中的修饰符按功能可分为四部分:属性修饰符,存取修饰符,类修饰符和成员修饰符。属性修饰符::按值将对象封送到远程服务器。在按值封送对象时,就会创建一个该对象的副本,并将其序列化传送到服务器。任何对该对象的方法调用都是在服务器上进行的。:是Single-ThreadedApartment单线程套间的意思,是一种线程模型(线程模式用于处理组件在多线程的环境里并行与并互的方式,套间线程(STAThread)模式中接口跨线程传递必须被调度(Marshal),不调度直传肯定会失败!而MTA或FreeThread模式中的接口可以不经调度直接传递。这种调度在特定的环境中非常影响性能(可有几百倍之差)。如VB里只支持STAThread模式。FreeThread模式的组件会在里面表现成和跨进程一样慢!线程模式是微软的基础中的极其重要的概念。一定要吃透!:是MultiThreadedApartment多线程套间的意思,同上也是一种线程模型。存取修饰符:public:存取不受限制。private:只有包含该成员的类可以存取。internal:只有当前工程可以存取。protected:只有包含该成员的类以及派生类可以存取。类修饰符:abstract:抽象类。指示一个类只能作为其它类的基类。sealed:密封类。指示一个类不能被继承。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。成员修饰符:abstract:指示该方法或属性没有实现。sealed:密封方法。可以防止在派生类中对该方法的override(重载。不是类的每个成员方法都可以作为密封方法密封方法,必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed修饰符总是和override修饰符同时使用。delegate:委托。用来定义一个函数指针。C#中的事件驱动是基于delegate+event的。const:指定该成员的值只读不允许修改。event:声明一个事件。extern:指示方法在外部实现。override:重写。对由基类继承成员的新实现。readonly:指示一个域只能在声明时以及相同类的内部被赋值。static:指示一个成员属于类型本身,而不是属于特定的对象。即在定义后可不经实例化,就可使用。virtual:指示一个方法或存取器的实现可以在继承类中被覆盖。new:在派生类中隐藏指定的基类成员,从而实现重写的功能。若要隐藏继承类的成员,请使用相同名称在派生类中声明该成员,并用new修饰符修饰它。

  ⒐C#中this关键字的作用是什么

  ⒑在C#里this关键字主要有三种意思也分别对应各自的用途,见下:

  ⒒在类的内部使用this是指“当前对象的”;

  ⒓public?class?Foo{????public?String?Name?{?get;?set;?}????public?virtual?String?MyFunction(){??????return?this.Name;?//?返回当前对象的Name属性值????}}

  ⒔在构造函数圆括号尾部使用this是指“调用其它的构造函数”;

  ⒕public?class?Foo{???public?int?Capacity?{?get;?set;?}???public?Foo():this()?//?此处的this指的是调用带参数的构造函数???{}???public?Foo(int?capacity){??????this.Capacity?=?capacity;???}}

  ⒖在使用索引器时用this关键字作为修饰符。

  ⒗public?class?Foo{????????private?ArrayList?al?=?new?ArrayList(?《《?);????????public?virtual?Object?this?//?索引器????????{????????????get;????????????set;????????}?}

您可能感兴趣的文章:

相关文章