读书人

关于类的属性赋值有关问题

发布时间: 2012-01-07 21:41:55 作者: rapoo

关于类的属性赋值问题
想问一下,为一个类的属性赋值,是不是只能实例化这个类后再赋值,我能否在类中定义一个函数,改变这个属性的值?
例如:
类定义:
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访问器
}
[解决办法]
可以.

读书人网 >C#

热点推荐