运算符重载注意事项_第1页
运算符重载注意事项_第2页
运算符重载注意事项_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Operator关键字用于在类或结构声明中声明运算符。运算符声明可以采用以下四种格式之一:public static result-type operator unary-operator(op-type operand)public static result-type operator binary-operand(op-type operand,op-type 2 operand2)public static implicit operator conv-type-out(conv-type-in operand)public static explicit operator conv-type-out(conv-type-in operand)参数:O result-type操作符的结果类型。O unary-operator以下运算符之一:-!-true falseO op-type第一(或唯一)参数的类型。O operand第一个(或唯一的)参数的名称。O binary-operator之一:-*/%|=!=O op-type2第二个参数的类型。O operand2第二个参数的名称。O conv-type-out类型转换操作符的目标类型。O conv-type-in类型转换运算符的输入类型。注意:前两个表单声明重新加载内置运算符的自定义运算符。并非所有内置操作符都可以重新加载(请参见可重新加载的操作符)。Op-type和op-type2中至少有一个必须是闭合类型(即,运算符所属的类型或解释为用户定义的类型)。例如,此操作不会复盖整数加法运算符。最后两个表单声明转换运算符。Conv-type-in和conv-type-out之一必须是闭合类型。这意味着“变换”操作符可以从闭合类型转换为其他类型,也可以从其他类型转换为闭合类型。运算符只能使用值参数,不能使用ref或out参数。C#需要一对重载比较运算符。如果重载=,也必须重载!=,否则会产生编译错误。比较运算符还必须返回bool类型值,这是与其他算术运算符的根本区别。C#不允许重新加载=运算符,但是,例如,重新加载运算符时,编译器会使用运算符的重新加载自动执行=运算符的工作。运算符重载实际上是函数重载。首先通过指定的运算表达式调用相应的运算符函数,然后将操作数转换为运算符函数的参数,根据参数的类型确定应调用的函数重载的过程由编译器执行。所有运算符声明之前都可以有可选属性(C#编程指南)的列表。Using Systemusing system . collections . generic;Using System。TextNamespace OperatorOverLoading类程序Static void Main(string args)Student S1=new Student(20, Tom );Student S2=new Student(18, Jack );Student S3=S1 S2S3 . say plus();(S1-s2)。sayMinus();控制台。read key();Public class StudentPublic Student() Public student (int age,string name)T=nameThis.age=age专用字符串name专用int agePublic void sayPlus()System。Console.WriteLine(0年龄之和为:1 ,,this . age);Public void sayMinus() System。Console.WriteLine(0年龄差异如下:1 ,,this . age);/复盖运算符public static student operator(student S1,student S2)Return new student (s1.age s2.age,S1 . name and S2 . name);/复盖“-”运算符public static student operator-(studen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论