2013-02-07 71 views
0

我有一個小問題調用ICloneable接口「不實現接口成員‘System.ICloneable.Clone()’

我已經告訴我要使用的界面,這樣的類:

class UnitClass: ICloneable 

,並放置在功能克隆

public Object Clone() 
    { 
     return this.MemberwiseClone(); 
    } 

但是由於某些原因,程序告訴我,我還沒有實現System.ICloneable.clone()我甚至嘗試給函數的n明確的名字像這樣...

public Object System.ICloneable.Clone() 

但是效果不大,有人知道我做錯了什麼?

編輯:滿級

class UnitClass: ICloneable 
{ 

//----------------------------------------------------------------------------------------------- 
//----------------------------------------------Variables---------------------------------------- 

    private int unitID; //added for xml 
    private string unitName; 
    private int unitBaseHP; 
    private int unitCurrentHP; 
    private Carrier unitCarrier; 
    private int unitRechargeTime; 
    private int turnLastPlayed; 
    private int strengthAgainstFighters; 
    private int strengthAgainstBombers; 
    private int strengthAgainstTurrets; 
    private int strengthAgainstCarriers; 

//----------------------------------------------------------------------------------------------- 
//---------------------------------------------Constructor--------------------------------------- 

    public UnitClass() 
    { 
      unitID = 0; 
      unitName = "Name Not Set"; 
      unitBaseHP = 0; 
      unitCurrentHP = 0; 
      unitCarrier = null;//Carrier works as faction ie red/blue or left/right 
      unitRechargeTime = 0; 
      turnLastPlayed = 0; 
      strengthAgainstFighters = 0; 
      strengthAgainstBombers = 0; 
      strengthAgainstTurrets = 0; 
      strengthAgainstCarriers = 0; 
    } 

//----------------------------------------------------------------------------------------------- 
//---------------------------------------------Gets and Sets------------------------------------- 

    public int UnitID//public 
    { 
     set { unitID = value; } 
     get { return unitID; } 
    } 

    public string UnitName//public 
    { 
     set { unitName = value; } 
     get { return unitName; } 
    } 

    public int UnitBaseHP//public 
    { 
     set { unitBaseHP = value; } 
     get { return unitBaseHP; } 
    } 

    public int UnitCurrentHP//public 
    { 
     set { unitCurrentHP = value; } 
     get { return unitCurrentHP; } 
    } 

    public Carrier UnitCarrier//public 
    { 
     set { unitCarrier = value; } 
     get { return unitCarrier; } 
    } 

    public int UnitRechargeTime//public 
    { 
     set { unitRechargeTime = value; } 
     get { return unitRechargeTime; } 
    } 

    public int TurnLastPlayed//public 
    { 
     set { turnLastPlayed = value; } 
     get { return turnLastPlayed; } 
    } 

    public int StrengthAgainstFighters//public 
    { 
     set { strengthAgainstFighters = value; } 
     get { return strengthAgainstFighters; } 
    } 

    public int StrengthAgainstBombers//public 
    { 
     set { strengthAgainstBombers = value; } 
     get { return strengthAgainstBombers; } 
    } 

    public int StrengthAgainstTurrets//public 
    { 
     set { strengthAgainstTurrets = value; } 
     get { return strengthAgainstTurrets; } 
    } 

    public int StrengthAgainstCarriers//public 
    { 
     set { strengthAgainstCarriers = value; } 
     get { return strengthAgainstCarriers; } 
    } 

//--------------------------------------------------------------------------- 

    public object Clone() 
    { 
     return this.MemberwiseClone(); 
    } 
} 
+1

最後一個定義是錯誤的(你不能同時公開並且實現一個方法),但是第一個定義應該是有效的。 – Jon

+1

你可以發佈全班?或者更好的是,最小的類有同樣的問題? – Kobi

+1

刪除生成的方法並嘗試再次添加它。右鍵單擊Iclonable並選擇「實現接口」>「實現接口」。編譯看看它是否正常工作。 –

回答

0

這對我建立了良好的。

public class MyClone : ICloneable 
{ 
    public object Clone() 
    { 
     return this.MemberwiseClone(); 
    } 
} 

你不想分享你的班級嗎?沒有什麼是真的跳出來對我。

相關問題