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
作为定义的变量,我该如何解决这个问题?
最佳答案
每个变量都有它的 definition scope .当在 block 中定义 c 中的变量时(意思是 {
和 }
之间),它被限制在该范围内,这意味着它只能在该范围内被引用。因此,在最后一行中,您超出了 c1
、c2
、c3
的定义范围,无法引用它们。
你需要在 block 外定义它们:
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));
关于C# 不接受 c1、c2、c3 作为定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831279/