"withブロック"で作成された名前のないオブジェクトがあります。"ブロック付き"で作成されたオブジェクトを見るにはどうすればよいですか?
With Factory.CreateSomeObject()
.SomeProp = someValue
...
End With
私の質問は、デバッガがブレークモードになっているときにオブジェクトを検査するにはどうすればいいですか?
"withブロック"で作成された名前のないオブジェクトがあります。"ブロック付き"で作成されたオブジェクトを見るにはどうすればよいですか?
With Factory.CreateSomeObject()
.SomeProp = someValue
...
End With
私の質問は、デバッガがブレークモードになっているときにオブジェクトを検査するにはどうすればいいですか?
IはWith
ブロック内の行にブレークポイントを設定すると、関数から返されたオブジェクトは、ローカルウィンドウに表示されます。これはVS2015を使用しています。さらに、With
行の関数名を右クリックし、[Add Watch]を選択すると、オブジェクトがウォッチウィンドウに表示されます。
マイコード:
Module Module1
Sub Main()
With FunctionThatCreatesAnA()
Console.WriteLine("{0}, {1}", .SomeString, .SomeInteger)
End With
Console.ReadLine()
End Sub
Function FunctionThatCreatesAnA() As ClassA
Return New ClassA With {.SomeString = "Blah Blah", .SomeInteger = 42}
End Function
End Module
Public Class ClassA
Public Property SomeString() As String
Public Property SomeInteger() As Integer
End Class
ローカルウィンドウ:
ウォッチウィンドウ:
おそらくとして私のために来たことはない@Chrisに感謝します.Localalsウィンドウでうまくいきます。ただし、2番目の方法では注意してください:関数名を右クリックすると、 "withブロック"で作成されたオブジェクトが表示されます。 – Georg
私はこれができないと思いますが、あなたは追加の行を使用することができます:あなたが最初の行に調べることができます。このソリューションにより
Dim someObj As Object = Factory.CreateSomeObject()
With someObj
.SomeProp = someValue
End With
を。
Some additional information on StackOverflow (similar question).
興味深い質問と1私はこれまで考えなかった。それは可能ではないかもしれないと思われます。その場合、回避策は式の結果をローカル変数に代入し、その変数をWith文で使用することです。 – jmcilhinney
何かを見たい場合は、匿名で作成しないでください。とにかく私は「With」のステートメントが気に入らない。私はそれが利益であるとは決して理解していません。欠点は明らかに利点を上回っています(もしあれば)。 –
これはコードの問題ではなくデバッガの問題だと思う:) – Georg