首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-01-07 
关于类的属性赋值问题想问一下,为一个类的属性赋值,是不是只能实例化这个类后再赋值,我能否在类中定义一个

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

热点排行