举例如下:
//接口
public interface ValuePair {
  object OldValue {get; set;}
  object NewValue {get; set;}
}//实现的结构,注意,不是类
public struct IntPair {
  public int OldValue {
    get {......}
    set {......}
  }  public int NewValue {
    get {......}
    set {......}
  }
}上面这段代码,在VS2003中是编译不了的。不知如何实现这个方式。?我的目的是:
把一些常用数据的原始数据和修改数据放在一起,以便对应和比较。
所以要用轻便的结构。
  

解决方案 »

  1.   

    显示接口实现
    public interface ValuePair {
      object OldValue {get; set;}
      object NewValue {get; set;}
    }public struct IntPair : ValuePair  {
      public int OldValue {
        get {......}
        set {......}
      }  public int NewValue {
        get {......}
        set {......}
      }  object ValuePair.OldValue{
        get{
          return (object)OldValue;
        }
        set{
          OldValue = (int)value;
        }
      }  object ValuePair.NewValue{
        get{}
        set{}
      }
    }
      

  2.   

    to psn
    你的做法倒是不错。不过接口的优点没有体现出来,那还不如不用接口呢。
      

  3.   

    1。C#不支持返回值重载,IL倒可以。
    2。显示接口实现是为了隐藏接口,间接实现返回值重载
    3。使用结构实现的接口引发boxing,性能问题
    4。可以改换实现方式,参照4个Compare方式
      

  4.   

    同意  aspcn(飞刀)   .NET 2.0 中泛型才提供此功能