private void ParametersChanged(object sender, EventArgs e)
{
if (AreArgumentsValid() && klasaBetonaComboBox.SelectedItem != null)
{
var _dMed = Convert.ToDouble(MomentSavijanjaMed.Text);
var _dh = Convert.ToDouble(VisinaPresjekaH.Text);
var _db = Convert.ToDouble(SirinaPresjekaB.Text);
var _dd1 = Convert.ToDouble(UdaljenostArmD1.Text);
var _dd = _dh - _dd1;
var _dFck = Convert.ToDouble(fck.Text);
var _gamaC = 1.50;
gamaCRezultat.Text = _gamaC.ToString();
var dFcd = _dFck /_gamaC;
FcdRezultat.Text = dFcd.ToString();
var _dMiSd = _dMed * 1000 / (_dd * _dd * _db * dFcd);
rezultat.Text = _dMiSd.ToString("F4");
}
从这里开始我需要在下一个结构中使用变量_dMiSd
和_dd
。
private void deformacijaCelikaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
double epsilonC2;
double ksiRacunski;
double zetaRacunska;
double kARacunski;
double epsilonC2pretpostavka;
double miSdCrtica;
double alphaVRacunski;
double selectedDeformacija = ((NovaDeformacijaArmature)deformacijaCelikaComboBox.SelectedItem).epsilonCelika;
double zeta;
double ksi;
double xNeutralnaOs;
double zKrakSila;
if (selectedDeformacija == 20.0)
{
for (epsilonC2pretpostavka = 0.01; epsilonC2pretpostavka <=3.5 ; epsilonC2pretpostavka += 0.01)
{
ksiRacunski = epsilonC2pretpostavka / (selectedDeformacija + epsilonC2pretpostavka);
if (epsilonC2pretpostavka <= 2)
{
kARacunski = 8 - epsilonC2pretpostavka / (4 * (6 - epsilonC2pretpostavka));
alphaVRacunski = (epsilonC2pretpostavka * (6 - epsilonC2pretpostavka)) / 12;
}
else if (epsilonC2pretpostavka <= 3.5)
{
kARacunski = (epsilonC2pretpostavka * (3 - epsilonC2pretpostavka - 4) + 2) / (2 * epsilonC2pretpostavka * (3 * epsilonC2pretpostavka - 2));
alphaVRacunski = (3 * epsilonC2pretpostavka - 2) / (3 * epsilonC2pretpostavka);
}
zetaRacunska = 1 - (kARacunski * ksiRacunski);
miSdCrtica = 0.85 * alphaVRacunski * ksiRacunski * zetaRacunska;
if (Math.Abs(miSdCrtica-_dMiSd)<0.0001)
{
epsilonC2pretpostavka = epsilonC2;
zetaRacunska = zeta;
ksiRacunski = ksi;
xNeutralnaOs = ksi * _dd;
zKrakSila = zeta * _dd;
}
在这里,我看到了循环。在其中我有if情况,它会给我变量kAracunski
和alphaVracunski
的值。
当我从计算中得到它们时,我想用它们进行计算miSdCrtica
。
之后我想检查他们的差异是否满足给定的条件。
我收到错误:
“当前上下文中不存在变量(
_dMiSd
和_dd
)。
错误
“使用未分配的变量alphaVRacunski和
zetaRacunski
。
如何将它们连接在一起?
简单示例
private void something(object sender, EventArgs e)
{
double a=3;
double b=6;
double c;
double d;
if (a>5)
{
c = a + b;
}
d = c * 5;
变量c未分配且无法使用...我该如何使用它? 我知道这是一个非常简单的问题和解决方案可能非常简单,但我在编程方面真的很新,需要一些时间将事情联系在一起。我的appologies
答案 0 :(得分:0)
尝试在修改其值的区域之外声明它们,并将它们声明为整数或双精度。
internal int _dMisd;
internal int _dd;
private void ParametersChanged(object sender, EventArgs e)
{
if (AreArgumentsValid() && klasaBetonaComboBox.SelectedItem != null)
{
_dMed = Convert.ToDouble(MomentSavijanjaMed.Text);
_dh = Convert.ToDouble(VisinaPresjekaH.Text);
_db = Convert.ToDouble(SirinaPresjekaB.Text);
_dd1 = Convert.ToDouble(UdaljenostArmD1.Text);
_dd = _dh - _dd1;
_dFck = Convert.ToDouble(fck.Text);
_gamaC = 1.50;
gamaCRezultat.Text = _gamaC.ToString();
dFcd = _dFck /_gamaC;
FcdRezultat.Text = dFcd.ToString();
_dMiSd = _dMed * 1000 / (_dd * _dd * _db * dFcd);
rezultat.Text = _dMiSd.ToString("F4");
}
}
为什么你要将数字声明为'var'?
编辑:在函数
之外声明c和d double c;
double d;
private void something(object sender, EventArgs e)
{
double a=3;
double b=6;
if (a>5)
{
c = a + b;
}
d = c * 5;
}