public struct strColumnStyleSet
{
public strColumnStyleSet(int _iColumnSelect, string _strHeaderText, string _strName, object[] _objComboNumber)
{
iColumnSelect = _iColumnSelect;
strHeaderText = _strHeaderText;
strName = _strName;
_objComboNumber = objComboNumber;
} public int iColumnSelect;
public string strHeaderText;
public string strName;
public object[] objComboNumber; public int _iColumnSelect
{
get
{
return iColumnSelect;
}
set
{
iColumnSelect = value;
}
} public string _strHeaderText
{
get
{
return strHeaderText;
}
set
{
strHeaderText = value;
}
} public string _strName
{
get
{
return strName;
}
set
{
strName = value;
}
}
}
结构体里面没办法对public object[] objComboNumber;赋予初值。
但是如果我不赋予初值,又在构造函数public strColumnStyleSet(int _iColumnSelect, string _strHeaderText, string _strName, object[] _objComboNumber)中告诉我必须执行这个栏位,两难啊,请教!!!
另外这样写错了
objComboNumber = _objComboNumber;
object[] _objComboNumber = null)给他默认成null 不行么
{
public strColumnStyleSet(int _iColumnSelect, string _strHeaderText, string _strName, T[] _objComboNumber)
{
iColumnSelect = _iColumnSelect;
strHeaderText = _strHeaderText;
strName = _strName;
objComboNumber = _objComboNumber;
} public int iColumnSelect;
public string strHeaderText;
public string strName;
public T[] objComboNumber; public int _iColumnSelect
{
get
{
return iColumnSelect;
}
set
{
iColumnSelect = value;
}
} public string _strHeaderText
{
get
{
return strHeaderText;
}
set
{
strHeaderText = value;
}
} public string _strName
{
get
{
return strName;
}
set
{
strName = value;
}
}
}
// 调用
private void btnResultSel_Click(object sender, EventArgs e)
{
int[] arr = new int[2];
arr[0] = 1;
arr[1] = 101;
strColumnStyleSet<int> aa = new strColumnStyleSet<int>(1, "gogo", "comeon", arr);
}
你可以采用变参方式:声明如下params可变参数,然后用for循环给object[]赋值
public static void UseParams2(params object[] list)
{
for (int i = 0 ; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine();
}