抽象類和匿名方法的使用

萬里無雲便是我發表於2017-04-16

問題:

實驗5---第4題
建立抽象類A,(包含一個求兩個數之和的抽象方法,)

建立子類B(重寫求和方法,使得可計算整數,雙精度,字串)

程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {

        static void Main(string[] args)
        {
            B S1 = new B();
            S1.add(123,123);
            S1.add(12.3, 45.6);
            S1.add("hello", " c#");
            Console.ReadKey();
        }
    }



    //抽象類A
    abstract class A
    {
        public abstract void add(int a, int b);
    };//注意標點


    class B : A
    {
        public override void add(int a, int b)//同一個函式只需要這一個重寫符號就可以
        {
            
            //Console.WriteLine("兩整數相加的和是:{0}", a+b);
            Console.WriteLine(a + b);
            
        }
        
        public  void add(double a, double b)
        {
            
           // Console.WriteLine("兩雙精度數相加的和是:{1}", a + b);
           Console.WriteLine("兩雙精度數相加的和是:{0}", a + b);
            //一個console.writeline({0},{1}....)是這樣從0開始輸出
            
        }
        public  void add(string a, string b)
        {
            
            //Console.WriteLine("兩字串相加是:{2}", a + b);
            Console.WriteLine("兩字串相加是:{0}", a + b);
          
        }
    }

}

問題:

實驗6-第3題
計算整數型陣列各元素之和的功能


程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace 匿名檔案
{
    delegate void MyDelegate(int x, int y);
    class Program
    {
        
        static void Main(string[]args)
        {
            
          //  int sum = 0;
            string s;
            int s1,s2;
            int sum=0;
            MyDelegate add = delegate(int m, int n)
                   {
                   sum = sum+m+n;
                   };
            Console.WriteLine("輸入exit結束,輸出所有數的和");
           while (true)
          {
               s=Console.ReadLine();
               if (s == "exit")
               {
                   Console.WriteLine("{0}",sum);
                   break;
               }

                  
               else
               {   
                   s1=int.Parse(s);
                   s=Console.ReadLine();
                   if (s== "exit")
                   {
                       Console.WriteLine("{0}", sum+s1);//防止計算奇數個數的和
                       break;
                   }
                   s2 = int.Parse(s);
                   add(s1,s2);
               }
	         
          }
            Console.ReadKey();
        }
    }

}



總結:

注意抽象類的繼承同一個函式只需要一個override就可,

注意輸出函式console.writeline({0},{1},{2},.....);一個語句中的變數是從0開始的。



相關文章