比如Class A中有个字段或者属性PA,是double的引用,
就像C++中的引用属性,自身没有值,受外界的改变而改变不知道该怎么实现呢?
谢谢回帖

解决方案 »

  1.   

    封装成方法。

    private string _test;
    public string Test
    {
        get{return _test;}
        set{_test = value;}
    }
      

  2.   

    Test的_test也是相当于值类型外部的改变并不会影响到它更何况我要求的是double这种类型
      

  3.   


    /// <summary>
    /// Creates a datatable with datacolumns
            /// 根据列来创建一个DataTable
    /// </summary>
    /// <param name="t">类型,可以是任何类型</param>
    /// <returns></returns>
    protected static DataTable CreateShell(Type t)
    {
    DataTable dt = new DataTable(t.Name);
    PropertyInfo[] pia = t.GetProperties();
    foreach (PropertyInfo pi in pia)
    {
    if(pi.CanRead)
    {
    string st = pi.PropertyType.ToString();
    switch(st)
    {
    case "System.String":
    case "System.Int32":
    case "System.Boolean":
    case "System.Double":
    case "System.Guid":
    dt.Columns.Add(pi.Name,pi.PropertyType);
    break;
    }
    }
    }
                types[t] = dt; return dt;
    }这是一个Type类型  去得到这个类型的属性
      

  4.   

    算啦 我还是用unsafe代码吧
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace testttt
    {
        class Program
        {
            static void Main(string[] args)
            {
                double t = 10;            unsafe
                {
                    Test test = new Test(&t);                t = 11;                Console.WriteLine(test.PA);                t = new double();                t = 12;
                    Console.WriteLine(test.PA);
                }        }
        }    unsafe public class Test
        {
            double* _Test;
            public Test(double* t)
            {
                _Test = t;
            }        public double PA
            {
                get
                {
                    return *_Test;
                }
            }
        }
    }