crazytrain
2005-02-03 12:37:01 UTC
C#開発経験4年以上のものですが,(β版からです)
ここに来てInvalidProgramExceptionというものに困らされてます.
環境:Windows XP SP2
VS2002SP3
以下のクラスをReleaseコンパイルしたdllを参照しているexeを実行すると
InvalidProgramExceptionが発生します.
VisualStudioから実行すると発生しません.
exeから実行するとExceptionが発生します.
こちらもどこが悪いのかは突き止めてますが,これはC#の文法上
問題あるのでしょうか?
問題があるのであれば,これは明白にしてもらわないと開発にかなり
支障が生じます.
Calculateを用いるとExceptionが発生します.4つの配列の
長さは同じものとしてください.
public class TestClass
{
private double[] arrayT;
private double[] arrayS;
private double[] arrayK;
public Swaption(double[] T, double[] K, double[] S)
{
this.arrayT = T;
this.arrayS = S;
this.arrayK = K;
}
public double Calculate(double[] arrayD)
{
double CFPV = 0D;
double LMPV = 0D;
double PVBP = 0D;
double PV = 0D;
for(int i = 0; i < this.arrayT.Length; i++)
{
PV = this.arrayT[i]*arrayD[i];
CFPV += PV*this.arrayK[i];
LMPV += PV*this.arrayS[i];
PVBP += PV;
}
double flatK = (CFPV-LMPV)/PVBP;
return flatK;
}
}
ここに来てInvalidProgramExceptionというものに困らされてます.
環境:Windows XP SP2
VS2002SP3
以下のクラスをReleaseコンパイルしたdllを参照しているexeを実行すると
InvalidProgramExceptionが発生します.
VisualStudioから実行すると発生しません.
exeから実行するとExceptionが発生します.
こちらもどこが悪いのかは突き止めてますが,これはC#の文法上
問題あるのでしょうか?
問題があるのであれば,これは明白にしてもらわないと開発にかなり
支障が生じます.
Calculateを用いるとExceptionが発生します.4つの配列の
長さは同じものとしてください.
public class TestClass
{
private double[] arrayT;
private double[] arrayS;
private double[] arrayK;
public Swaption(double[] T, double[] K, double[] S)
{
this.arrayT = T;
this.arrayS = S;
this.arrayK = K;
}
public double Calculate(double[] arrayD)
{
double CFPV = 0D;
double LMPV = 0D;
double PVBP = 0D;
double PV = 0D;
for(int i = 0; i < this.arrayT.Length; i++)
{
PV = this.arrayT[i]*arrayD[i];
CFPV += PV*this.arrayK[i];
LMPV += PV*this.arrayS[i];
PVBP += PV;
}
double flatK = (CFPV-LMPV)/PVBP;
return flatK;
}
}