我有这样二个类, CData保存的是从文件中读取的数据. 
CDraw是用于在屏幕上显示CData的类.
我想在CDraw中存放CData m_clsData; 这样可以方便的调用CData中的数据了.
但是问题来了, 在CDraw外已经有一个CData了, 我想m_clsData只要存放CData的引入就可以了, 要不然再创建一个CData就太浪费内存了. CData是通过CDraw的InitData(ref CData clsdata)来传递的. 我想问一下, 在CDraw中如果用m_clsData = clsdata; 这样的语句, 但存的是引用吗? 如果这样是错误的, 应该如何声明这个变量, 谢谢!

解决方案 »

  1.   

    建议研究一下C#中值类型和引用类型的基本知识。
    对于引用类型,使用ref关键字是多余的。
    所有引用类型在赋值时都是传递其引用,而不是其值的。直接用公共字段来定义就好了:
    public CData Data;如果要设置为只能设置,用属性来定义:
    public CData Data { protected get; set; }
      

  2.   

    除了值类型(也就是常用的数值类型与bool类型)除外,对于引用类型的传递,本身传的就是引用,所以加不加ref都不会差别