1)假如自己定义一个struct,Object类型的对象是否能转换,转换过后能否访问他的成员。
   2)自定一个struct,实现一个Interface,我把interface中的方法重载,而不要原来的函数标签,算不算已经实现了

解决方案 »

  1.   

    其实这些问题,你试一下就知道答案了。1、能转换,能访问。(int 赋值给object,object转换int就说明了这个问题)
    2、接口只能原封不动的实现,参数签名必须一致。改变方法签名重载不算实现。
      

  2.   

     谢谢你的回答,我是试了过后又那么搞不懂就发的,问下:
            是可以转换,但为什么有不能访问的代码,
            例如:
            struct A : IComparable
           {
              public int a;
              public int CompareTo(object obj)
              {
                    throw new NotImplenmentedException();
                    if (((A)obj).a = a)    //这里有不能访问的代码,使异常的问题,不知道是什么问题
                        return 1;          //如果不抛出异常,就没有问题,
               }
           }
      

  3.   

    删掉throw new NotImplenmentedException();这一句这一句是你点实现接口的时候IDE自动生成的,怕你忘记实现类容。
      

  4.   

    这一句的意思是显示的抛出“NotImplenmentedException”异常
    无论如何都要包异常的。
      

  5.   


    因为你无论如何都抛了个异常。抛异常会中断当前程序,就好比你那儿写了个return一样。
    下面的代码永远都没有机会执行到。