我需要创建一个类,但条件是,我将在字符串中接收类名,如下所示
["IndividualContact", "Legal"].each do |var|
ind = var.new
end
现在我的期望是,我需要致电
IndividualContact.new
和Legal.new
但是因为var是一个字符串变量,所以它在字符串上调用.new
,如下所示
"IndividualContact".new
而不是打电话
IndividualContact.new
我可以按照预期打电话吗?
答案 0 :(得分:3)
使用enter image description here(假设这些类已在全局命名空间中定义):
OracleParameter CaseParam = new OracleParameter("arg_CASE_NUMBER", OracleType.Number);
CaseParam.Direction = ParameterDirection.Input;
if (Case != null || Case!="")
{
CaseParam.Value = Convert.ToInt32((Case.Equals(string.Empty)) ? (object)DBNull.Value : Case);
}
else
{
CaseParam.Value = DBNull.Value;
}
//CaseParam.Value =Convert.ToInt32(Case);
cmd.Parameters.Add(CaseParam);
OracleParameter SRE_pricingParam = new OracleParameter("arg_SRE_PRICING_ELEMENT", OracleType.Number);
SRE_pricingParam.Direction = ParameterDirection.Input;
if (SRE_Pricing != null || SRE_Pricing != "")
{
SRE_pricingParam.Value = Convert.ToInt32((SRE_Pricing.Equals(string.Empty)) ? (object)DBNull.Value : SRE_Pricing);
}
else
{
SRE_pricingParam.Value = DBNull.Value;
}
//SRE_pricingParam.Value = Convert.ToInt32(SRE_Pricing);
cmd.Parameters.Add(SRE_pricingParam);
上面的代码将返回一个包含两个实例的数组:一个%w|IndividualContact Legal|.map do |klazz|
Kernel.const_get(klazz).new
end
实例和一个IndividualContact
实例。