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#在我的代码中不接受c1
,c2
,c3
作为定义的变量,我该如何解决?
答案 0 :(得分:11)
每个变量都有definition scope。当块中定义的c中的变量(意味着在{
和}
之间)时,它仅限于该范围,这意味着它只能在该范围内引用。因此,在最后一行中,您不在c1
,c2
,c3
的定义范围内,也无法引用它们。
您需要在块外定义它们:
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));