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

标签 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 作为定义的变量,我该如何解决这个问题?

最佳答案

每个变量都有它的 definition scope .当在 block 中定义 c 中的变量时(意思是 {} 之间),它被限制在该范围内,这意味着它只能在该范围内被引用。因此,在最后一行中,您超出了 c1c2c3 的定义范围,无法引用它们。

你需要在 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/

相关文章:

模块中的javascript私有(private)内部函数可以访问 "this"范围

javascript - React.JS 的 Superagent 响应范围问题

c# - 如何使用 LINQ 选择具有最高值的项目?

c# - 尝试在 Plesk Onyx 17.8.11 上托管 ASP.NET 2.2 网站时出错 - HTTP 错误 500.0 - ANCM 进程内处理程序加载失败

c# - .Net 2 中的反序列化列表 <> 应该在 .Net 4 中工作吗?

ruby-on-rails - Rails 包括范围

javascript - 如何在事件处理程序中访问变量 "this"

C++ : Pushing an object into a vector

javascript - 将 Fineuploader 与 ASP.NET 网络表单一起使用。对严格模式调用函数的访问被审查

c# - 获取组装所需的组件?