• C#


    struct_Operator_Overloading.cs

     1 using System;
     2 
     3 namespace 运算符重载
     4 {
     5     /*----------< 结构体:struct_Operator_Overloading >-----------
     6      * 运算符重载:
     7     ----------------------------------------------------------------*/
     8     public struct struct_Operator_Overloading
     9     {
    10         public int nReal { get; set; }              // 实数部分
    11         public int nImaginary { get; set; }       // 虚数部分
    12         /*----------------------< 带参数构造函数 >------------------------
    13          *  1.带参数的构造函数(必须加上【:this()】否则会有如下错误提示:
    14          *    错误 CS0188: 在给“this”对象的所有字段赋值之前,无法使用该对
    15          *    象.
    16         ---------------------------------------------------------------------*/
    17         public struct_Operator_Overloading(int real, int imaginary) : this()
    18         {
    19             nReal = real;
    20             nImaginary = imaginary;
    21         }
    22         /*-------------------< 重载运算符【 + 】>---------------------
    23          * 重载运算符【 + 】:
    24          *      1.形参a : 第一个操作数, 必须为struct_Operation_Overrloading类型
    25          *      2.形参b : 第二个操作数. 必须为struct_Operation_Overrloading类型
    26          *      3.返回值: 必须为 struct_Operation_Overrloading 类型
    27          *      4.修饰词: 必须加 public 
    28          *      5.所有运算符重载的方法都应为静态方法: static 
    29         ----------------------------------------------------------------*/
    30         public static struct_Operator_Overloading operator +(struct_Operator_Overloading a, struct_Operator_Overloading b)
    31         {
    32             struct_Operator_Overloading result = new struct_Operator_Overloading();
    33             result.nReal = a.nReal + b.nReal;
    34             result.nImaginary = a.nImaginary + b.nImaginary;
    35             return result;                      // 返回结果
    36         }
    37 
    38         // 重写ToString()方法
    39         public override string ToString()
    40         {
    41             return string.Format("{0}+{1}", nReal, nImaginary);
    42         }
    43 
    44     }
    45 
    46 }

    Program.cs

     1 using System;
     2 
     3 namespace 运算符重载
     4 {
     5     class Program
     6     {
     7         static void Main(string[] args)
     8         {
     9             struct_Operator_Overloading a = new struct_Operator_Overloading(10, 20);
    10             struct_Operator_Overloading b = new struct_Operator_Overloading(30, 40);
    11             struct_Operator_Overloading sum = new struct_Operator_Overloading();
    12             // 利用重载的【+】来实现加法运算: 
    13             //  即: a与b的形参1与形参1相加; 形参2与形参2相加
    14             sum = a + b;    
    15 
    16             Console.WriteLine(" sum.nReal = {0}
     sum.Imaginary = {1}", sum.nReal, sum.nImaginary);
    17             //测试 : 重写的ToString()方法
    18             Console.WriteLine(" sum.ToSting();{0} ", sum.ToString());
    19 
    20             Console.ReadLine();
    21         }
    22     }
    23 }

  • 相关阅读:
    Maven下载依赖项的源代码(source code)和Javadoc
    Spring读写xml文件
    重建二叉树
    从尾到头打印链表
    替换空格
    洞穴逃生
    二维数组中的查找
    分苹果
    最小生成树算法prim and kruskal
    HTTP报文格式详解
  • 原文地址:https://www.cnblogs.com/DuanLaoYe/p/5258911.html
Copyright © 2020-2023  润新知