关于类的属性赋值问题
想问一下,为一个类的属性赋值,是不是只能实例化这个类后再赋值,我能否在类中定义一个函数,改变这个属性的值?
例如:
类定义:
Class Test
{
private List <myDefiniteType> _myTypeP;
public List <myDefiniteTyep> MyTypeP
{
set{ _myTypeP = value; }
get{ return _myTypeP; }
}
public Test();
}
我能否在Test类中再定义一个函数为_myTypeP赋值?
changeProp()
{
_myTypeP = new List <myDefiniteType> ();
}
------解决方案--------------------如果不是在构造函数里给myTypeP值,可能这个myTypeP在类被实例化后不是马上有值,而是要明确的调用方法后才能有值,所以最好是在构造函数里参它进行初始化,
当然就像你的代码中那个函数是完全可以添加到类里的,且可以做为Public公开到类外面供调用以初始化这个myTypeP变量.比如:
Class Test
{
private List <myDefiniteType> _myTypeP;
public List <myDefiniteTyep> MyTypeP
{
set{ _myTypeP = value; }
get{ return _myTypeP; }
}
public void changeProp()
{
_myTypeP = new List <myDefiniteType> ();
}
}
------解决方案--------------------当然可以...
go to have a try..
------解决方案--------------------我能否在Test类中再定义一个函数为_myTypeP赋值?
-----------------
可以,但通常没什么必要
另外有两个错误:
private List <myDefiniteType> _myTypeP = new List <myDefiniteType> (); //要赋初值,不然编译通不过
public List <myDefiniteTyep> MyTypeP
{
get{ return _myTypeP; } //泛型集合属性不需要set访问器
}
------解决方案--------------------可以.