2013-02-07 72 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(); 
    } 
} 

你不想分享你的班级吗?没有什么是真的跳出来对我。

相关问题