C#不接受c1,c2,c3作为定义的变量

时间:2013-07-24 10:23:33

标签: c# scope

if(API>30)
{
   double c1 = 0.0178; 
   double c2 = 1.187; 
   double c3 = 23.931;
}
else
{
   double c1 = 0.0362; 
   double c2 = 1.0937;
   double c3 = 25.7240;
}

double Rs2 = (c1 * sg * Math.Pow(p, c2)) * Math.Exp(c3 * (API / T));

C#在我的代码中不接受c1c2c3作为定义的变量,我该如何解决?

2 个答案:

答案 0 :(得分:11)

每个变量都有definition scope。当块中定义的c中的变量(意味着在{}之间)时,它仅限于该范围,这意味着它只能在该范围内引用。因此,在最后一行中,您不在c1c2c3的定义范围内,也无法引用它们。

您需要在块外定义它们:

double c1, c2, c3;
if(API>30)
{
   c1 = 0.0178; c2 = 1.187; c3 = 23.931;
}
else
{
   c1 = 0.0362; c2 = 1.0937; c3 = 25.7240;
}

double Rs2 = (c1 * sg * Math.Pow(p, c2)) * Math.Exp(c3 * (API / T));

答案 1 :(得分:4)

只需声明if/else范围的 out

double c1, c2, c3; 

if(API>30)
{
   c1 = 0.0178; 
   c2 = 1.187; 
   c3 = 23.931;
}
else
{
  c1 = 0.0362; 
  c2 = 1.0937; 
  c3 = 25.7240;
}
double Rs2 = (c1 * sg * Math.Pow(p, c2)) * Math.Exp(c3 * (API / T));