我需要在C#中进行动态实例化方面的帮助。我想要实现的是能够使用字符串变量作为实例化中的名称。我认为可以使用反射或其他方法,但我在这方面感到有些迷茫。以下是我的测试代码片段,希望有人能够提供答案。
Averages与处理所有内容的类相关联。所以,假设我想要测试该变量,并且将一切都与test的字符串绑定以传递给实例化。如何创建一个对象来处理输入的test变量,编译并在运行时使用?我知道这可能听起来很不寻常,但是与其使用多个IF和多个double声明,我可以使用动态实例化。任何能提供帮助的人,我都非常感激。
Averages test = new Averages();
double[] testresult;
testresult = test.sma();
嗨,我希望能够动态声明双精度数组。我已经知道如何声明静态数组了。我的目标是消除重复声明30个基本相同但名称不同的数组。
所以,不要这样做:
if (UITAName == "SMA")
{
Averages sma = new Averages();
double[] smaresult;
smaresult = sma.sma(UITAName, YVal, UITPeriod, UITShift);
chart1.Series[UITA].Points.DataBindXY(test2, test1);
}
if (UITAName == "TMA")
{
Averages tma = new Averages();
double[] tmaresult;
tmaresult = tma.tma(UITAName, YVal, UITPeriod);
chart1.Series[UITA].Points.DataBindXY(XVal, tmaresult);
}
else
if (UITAName == "EMA")
{
Averages ema = new Averages();
double[] emaresult;
emaresult = ema.ema(UITAName, YVal, UITPeriod);
chart1.Series[UITA].Points.DataBindXY(XVal, emaresult);
}
我希望能够一次性地处理所有事情,而不是使用IF语句。问题在于您无法使用字符串的声明进行编译。必须有一种方法,只是我不知道如何做。
平均UITAName = new Averages(); double[] UITANameresult; UITANameresult = UITAName.UITAName(UITAName,YVal,UITPeriod); chart1.Series [UITA] .Points.DataBindXY(XVal,UITANameresult);