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

c#全局变量类有关问题

2011-12-30 
c#全局变量类问题定义了全局变量类的两个属性,一个是DataBaseName字符串,另一个是TableName[]字符串数组,

c#全局变量类问题
定义了全局变量类的两个属性,一个是DataBaseName字符串,另一个是TableName[]字符串数组,然而第一个没有问题,第二个在使用是会出现 "未将对象引用设置为对象的实例 ".想问下是不是不能定义全局变量类中属性为数组,或是定义有错误,请帮忙看下,下面是代码
public   class   infoClass
        {

                private   static   string   databasename   =   " ";
                private   static   string   []   tablename   =   null;
                public   static   string   DataBaseName
                {
                        get
                        {
                                return   databasename;
                        }
                        set
                        {
                                databasename   =   value;
                        }
                }
                public   static   string   []   TableName
                {
                        get  
                        {
                                return   tablename;
                        }
                        set
                        {
                                tablename   =   value;
                        }
                }
        }

[解决办法]
private static string [] tablename =new string();
[解决办法]
private static string[] tablename = new string[5];

但这样未必是你想要的,最好是在类的构造函数中进行实例化,动态地决定数组有多大

public class infoClass
{

private static string databasename = " ";
private static string[] tablename ;

public infoClass():this(5)
{

}

public infoClass(int i)
{
tablename = new string[i];
}

public static string DataBaseName
{
get
{
return databasename;
}
set
{
databasename = value;
}
}



public static string[] TableName
{
get
{
return tablename;
}
set
{
tablename = value;
}
}
}

[解决办法]
你要根据自己数组的大小实例化,就像上面说的
[解决办法]
那么dddd218(恋恋风尘)请您能不能详细点解释下您的方法,我想学习下!
*********************
使用ArrayList(动态数组列表):
初始化:private static ArrayList tablename = new ArrayList();

添加:tablename.Add( "a ");
继续添加: tablename.Add( "b ");
……

获取值:string str = tablename.Get(0) as string; //添加到ArrayList以后对象的类型会变成object,取出来的时候需要类型转换。当然你使用.net2.0的话,可以使用泛型,这样类型就不会丢失


热点排行