私のコード(.Net Framework 3.5)でこれは本当に奇妙な問題があります。List(Of T)宣言と.addの奇妙な問題
Dim MyList As New List(Of Integer)
MyList.Add(3)
MyList.Add(5)
MyList.Add(9)
MyList.Add(17)
をそして、私は置けば
Dim MyList As New List(Of Integer)
後rigthを「壊す」と「マイリスト」しばらくの上にマウスを置く:だから、通常のVB.NETプログラムでは、私はこのような何かをするだろうコードが一時停止しています。カウント= 0です。しかし、私はちょうどそのようにリストを作成し、(私はそれを壊すとき)取得するサブを持っている: "カウント=プロパティの評価に失敗しました"。
私のリストにはデータを格納するのに十分なスペースがないようです...すべてを試してみるために私が使用する完全なコードは次のとおりです(ちなみにコード自体は意味をなさない私のプロジェクト)。それで私は "奇妙な"振る舞いを作り出すことができ、誰でもこれをテストすることができます。ここで(ごめんコードブロックのボタンが機能していない)コードは次のとおりです。私がしたすべては
Structure lPossibilitiesOutputStruct
Dim Pinion As GearOutputStruct
Dim Gear As GearOutputStruct
Dim Forces As ForcesStruct
Dim CenterDistance As Double
Dim Pitch As Double
Dim lStagePossibilities As List(Of lPossibilitiesOutputStruct)
End Structure
Structure GearOutputStruct
Dim TeethNbr As Integer
Dim RPM As Double
Dim FaceWidth As Double
Dim OutsideDiameter As Double
Dim Addendum As Double
Dim WholeDepth As Double
Dim OperatingPitchDiameter As Double
Dim OverPinData As OverPinOutputStruct
Dim SpanData As SpanOutputStruct
Dim AllowableBendingPower As Double
Dim AllowablePittingPower As Double
End Structure
Structure OverPinOutputStruct
Dim PinDiameter As Double
Dim OverpinMeasurement As Double
End Structure
Structure SpanOutputStruct
Dim TeethNbr As Integer
Dim SpanMeasurement As Double
End Structure
Structure ForcesStruct
Dim GearSetAxialForce As Double
Dim GearSetRadialForce As Double
Dim GearSetTangentialForce As Double
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim lStagePossibilities As New List(Of lPossibilitiesOutputStruct)
Dim MyList As New List(Of Integer)
MyList.Add(3)
MyList.Add(5)
MyList.Add(9)
MyList.Add(17)
lStagePossibilities = lGeneratePossibilities(Nothing, Nothing, 3, 1)
End Sub
Private Function lGeneratePossibilities(ByVal ActualStage As lPossibilitiesOutputStruct, ByVal CSL As List(Of Integer), ByVal MaxStage As Integer, ByVal CumulatedRatio As Double) As List(Of lPossibilitiesOutputStruct)
Return Nothing
End Function
形で新しいプロジェクトを作成し、そのコードを作成しました。プロジェクトには他に何もありません。私は "ターゲットCPU"と一緒に遊んで、それはすべてです...
コンパイルオプションを使用してx86 CPUを使用し、 "lStagePossibilities = ..."にブレークを入れると、 "Count = MyList上にマウスを置くと、プロパティの評価に失敗しました。 x64 CPUでそれを実行すると、すべて正常に動作しています...( "Count = 4")。私がx86 CPUに戻ったら、私はエラーを返す。さらに悪いことに、lPossabilitiesOutPutStruct構造体宣言の "Dim Pinion as GearOutputStruct"や "Dim Gear as GearOutputStruct"や "Dim Forces as ForcesStruct"という行をコメントすると、すべてがx86 CPUで正常に動作します。
リストの最大サイズの種類に関連していますか?
ありがとうございました!
ジャン
なぜStructuresを使用していますか?正当な理由がない限り、.Netのクラスを優先します。 –