最近要用混合编程,所以在学习C#,现在有个C#的库,里面有个double型的classpublic class Point3D
{
   public double X;
   ...
}我希望用int代替double来存数据,但这个库没有源代码,所以想当然的在派生类中重新定义xpublic class TestPoint3D : Point3D
{
   public int X;
   ...
}测试如下:            Point3D aTestPoint3D = new TestPoint3D();发现没有成功。请问我怎么样使用int型数据?

解决方案 »

  1.   

    我不想从int或者double型的数据转换,我就是怕转换会有数据精度问题才要用int型的,
    希望是两种方案:
    1. 最好的是生成的数据里只有int型 x,
    2 .同时有int和double型 x,但double型从来不用,浪费点空间没关系
      

  2.   

    泛型是不是需要改Point3D的源代码,但我没有它的源代码,只有接口
      

  3.   

     public new int X
    然后写一个函数,作为处理X的接口。
      

  4.   

    在你需要int的时候把double转化为int不就行了?为什么一定要代替原有的X?
      

  5.   

     Point3D aTestPoint3D = new TestPoint3D();
    这种写法是无论如何不可能实现楼主的想法的。
    这样定义完后aTestPoint3D在编译器看来就是完全的
    Point3D。因此肯定是显示的double.
    不知道楼主为什么一定要这样的需求,变通下吧!
      

  6.   

        public class Point3D
        {
            public double X;    }    public class TestPoint3D : Point3D
        {
            public int X
            {
                get
                {
                    return int.Parse(base.X);
                }
                set
                {
                    base.X = value;
                }
            }
        }这样不知道能满足楼主需求不》
      

  7.   

    恐怕LZ的要求是不可能实现的,继承之后重新定义的Int X,和原来的Double X,会是两个变量,
    即使变量名相同,也不会同时发生改变,而是各存各的!
      

  8.   

    public class Point3D<T>
        {
            public T X;    } 
      

  9.   

    如果 你有Point3D的原吗  就把它修改为泛性没有的话 就把 double  ConvertTO  int