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

use*_*136 2 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));
Run Code Online (Sandbox Code Playgroud)

C#不接受c1,c2,c3在我的代码定义瓦尔,我怎么能解决这个问题?

No *_*ame 11

每个变量都有它的定义范围.当块中定义的c中的变量(意思是a {和a 之间})限于该范围时,意味着它只能在该范围内引用.因此,在最后一行你出的定义范围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));
Run Code Online (Sandbox Code Playgroud)

  • 澄清您的答案:实体的范围通过其不合格的名称*确定其可以被引用的位置*.局部变量没有限定名称,因此它们**只能在其范围内引用.将它与`class C {public static int x; static int M(){return x; ` - 这里```在整个`C`范围内,因此在`M`中可以称为`x`.但是除了`C`(以及`C`的任何派生类)之外,你必须说`Cx`.你仍然可以引用变量,而不是`x`. (2认同)