3

空の Guid を作成する Guid.NewGuid() 呼び出しがあります。

このような問題の原因は何ですか?どうすれば修正できますか?

編集:コード:

<WebMethod()> _
Public Function CreateRow(rowValue As String) as String
    Dim rowPointer As Guid = System.Guid.NewGuid()
    Dim rowPointerValue As String = rowPointer.ToString()

    Try
        Dim result as Integer = SqlHelper.ExecuteNonQuery(ConnectionString, "Sproc_Name", rowValue, rowPointer)

        Return result
    Catch ex as Exception
        Throw ex
    End Try
End Function

編集: rowPointerはもともとrowPointerValueではなくSqlHelperに渡されていたことがわかりました-回答で指摘されているように、これはもちろん空として渡されます。それを rowPointerValue/rowPointer.ToString() に変更すると、問題が修正されました。

4

5 に答える 5

6

これは VB.NET の古い問題です。壊れているのはデバッグ ビジュアライザーだけです。

http://www.thesoftwaredevotional.com/2008/12/guid-visualizer-broken-in-vbnet.html

于 2008-12-22T22:14:10.843 に答える
2

私も同じことがありました。Guid.NeGuid() のデバッグは、それが空であることを示していました。.ToString() を呼び出すと、状況が修正されました。

于 2008-12-04T21:32:14.903 に答える
1

私はこの問題を VB.NET でのみ経験し、デバッグ中にのみ経験しました。48494さん、情報ありがとうございます。

于 2011-02-16T17:31:55.973 に答える
1

このコードを VS2008 でテストしましたが、結果は期待したものではありません。toString メソッドが呼び出されるまで、新しい GUID は作成されないようです。コードをステップ実行した後、rowPointerValue は GUID の文字列表現を保持します。

遅延実行を使用しているようですか?

于 2008-12-04T21:33:39.333 に答える
0

これを試して

Dim g As New Guid();

Dim whereDoYouWantToSeeIt As String = g.ToString();
于 2009-06-14T16:49:51.633 に答える