程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 類中繼承接口的屬性

C# 類中繼承接口的屬性

編輯:C#入門知識

在開發中面對接口編程,有時需要將屬性放到接口中,但是在類中又要如何去繼承接口的屬性呢?

開始的時候,我以為只要繼承了接口,就可以將屬性拿來用了。代碼如下:


 

public interface IA 
{ 
        int count{get;set;} 
        void test(); 
} 
 
public class A:IA 
{ 
        public void test() 
        { 
             //TODO...  
         } 
} 

public interface IA
{
        int count{get;set;}
        void test();
}

public class A:IA
{
        public void test()
        {
             //TODO...
         }
}

這時候,如何進行編譯,將會提示錯誤,見下圖。

 \
 


看提示就應該知道,是IA中的屬性count沒有實現。因為屬性在本質上也是方法,即get和set方法,只是屬性看起來像是字段一樣。現在對count進行實現,代碼如下


 

public class A : IA 
  {   
      #region count normal Property  
      private int count_; 
      public int count 
      { 
          get 
          { 
              return count_; 
          } 
          set 
          { 
              count_ = value; 
          } 
      } 
      #endregion  
 
      public void test() 
      { 
          //TODO...  
      } 
  } 

  public class A : IA
    { 
        #region count normal Property
        private int count_;
        public int count
        {
            get
            {
                return count_;
            }
            set
            {
                count_ = value;
            }
        }
        #endregion

        public void test()
        {
            //TODO...
        }

這裡說一個小技巧:在類繼承接口時,可以在接口的後面按下CTRL+.,然後就可以快速實現接口中的各個項了(包括方法和屬性)。只是需要注意的是,對於方法和屬性都會有這樣的代碼“throw new NotImplementedException();”,這就需要對其進行實現。

對於這一技巧可以參見《提高開發效率的Visual Studio 2010使用技巧》

那是否可以在接口中去增加一個公共字段,讓繼承的也可以訪問呢?比如這樣寫:

 

ublic interface IA 
    { 
        public int sum; 
        int count { get; set; } 
        void test(); 
    } 

public interface IA
    {
        public int sum;
        int count { get; set; }
        void test();

 }編譯報錯,見下圖

 \
 


 
接口具有下列屬性:

接口與抽象基類。 實現接口的任何選件類或結構必須實現其所有成員的鏈接。

接口不能直接實例化。 其成員通過實現接口的任何選件類或結構實現。

接口可以包含事件、索引器、方法和屬性。

接口不包含方法的實現。

選件類或結構可以實現多個接口。 選件類可以繼承基類並實現一個或多個接口。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved