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的话,可以使用泛型,这样类型就不会丢失