小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

c#接口作為返回類(lèi)型怎么理解

 kittywei 2012-02-24
10.1.5  使用接口作為返回值
同10.1.4小節(jié)中使用接口作為參數(shù)一樣,接口同樣可以作為返回值,本小節(jié)同樣通過(guò)一個(gè)實(shí)例演示接口的此種使用方法。

實(shí)例中定義了一個(gè)IShape接口,表示圖形,另外定義了一個(gè)Circle類(lèi),表示圓形,并實(shí)現(xiàn)了IShape接口,在MyClass類(lèi)中有一個(gè)MyOutput方法,該方法的返回值是IShape接口類(lèi)型的,實(shí)例代碼如下。

using System;

using System.Collections.Generic;

using System.Text;

namespace Example10_9

{

   class Program

   {

       static void Main(string[] args)

       {

           //創(chuàng)建Circle類(lèi)變量circle,并使用其作為參數(shù)創(chuàng)建MyClass型變量myClass

           Circle circle = new Circle(35);

           MyClass myClass = new MyClass(circle);

           

           //獲取返回值,并輸出其面積Area屬性

           Circle circle1 = (Circle)myClass.MyOutput(circle);

           Console.WriteLine(circle1.Area);

           Console.ReadLine();

       }

   }

   /// <summary>

   /// IShape接口

   /// </summary>

   interface IShape

   {

       /// <summary>

       /// Area屬性

       /// </summary>

       int Area

       {

           get;

           set;

       }

       /// <summary>

       /// Caculate方法

       /// </summary>

       void Caculate();

   }

   /// <summary>

   /// Circle類(lèi)繼承IShape

   /// </summary>

   class Circle:IShape

   {

       /// <summary>

       /// area字段

       /// </summary>

       int area = 0;

       /// <summary>

       /// 構(gòu)造函數(shù)

       /// </summary>

       /// <param name="m_Area">m_Area參數(shù)</param>

       public Circle(int m_Area)

       {

           area = m_Area;

       }

       #region IShape 成員

       /// <summary>

       /// Area屬性

       /// </summary>

       public int Area

       {

           get

           {

               return area ;

           }

           set

           {

               area = value;

           }

       }

       /// <summary>

       /// Caculate方法

       /// </summary>

       public void Caculate()

       {

           Console.WriteLine("計(jì)算面積!");

       }

       #endregion

   }

   /// <summary>

   /// MyClass類(lèi)

   /// </summary>

   class MyClass

   {

       /// <summary>

       /// 構(gòu)造函數(shù)

       /// </summary>

       /// <param name="m_shape">IShape型參數(shù)</param>

       public MyClass(IShape m_shape)

       {

           m_shape.Caculate();

           Console.WriteLine(m_shape.Area);

       }

       /// <summary>

       /// MyOutput方法

       /// </summary>

       /// <param name="m_shape">IShape接口類(lèi)型參數(shù)</param>

       /// <returns>IShape接口類(lèi)型返回值</returns>

       public IShape MyOutput(IShape m_shape)

       {

           m_shape.Area = 100;

           return m_shape;

       }

   }

}

程序運(yùn)行結(jié)果如下。

計(jì)算面積!

35

100

通過(guò)結(jié)果可以看到,程序中可以很方便的使用作為返回值類(lèi)型的一種約束。不僅對(duì)返回值的類(lèi)型進(jìn)行了限定,還提供了一定的靈活性。即使程序進(jìn)行了更新,比如添加了其他類(lèi)型如正方形類(lèi),矩形類(lèi),只要這些類(lèi)繼承了IShape接口,即可方便的進(jìn)行使用。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多