• ベストアンサー

.ToStringのありなし

VB2008を使っています。 Dim s As String '文字列型 s = WebBrowser1.DocumentText '------ (1) と s = WebBrowser1.DocumentText.ToString '------ (2) は、どちらが正しいのでしょうか? 厳密な違いも知りたいです。 (1)のサンプルも良く見かけますので・・・

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私なら迷わず (1) ですが……。 仮定) WebBroser1 は System.Windows.Forms.WebBrowser 型とする WebBrowser.DocumentText プロパティは System.String 型 MSDN: WebBrowser.DocumentText プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.documenttext.aspx なので,(1) は System.String へ System.String を代入するのだから,特別問題はないことになります。 次に, MSDN: String.ToString メソッド (System) http://msdn.microsoft.com/ja-jp/library/8tc6ws5s.aspx により,System.String.ToString は自分自身を返します。 Function ToString () As Strnig  Return Me End Function という感じでしょうか。よって,(2) は (1) とまったく同じ結果であり,ToString 呼び出しは無駄です。

その他の回答 (1)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

補足です。 整数型(IntegerやShort)を 文字列方に変換し代入する場合にToStringメソッドを使用します。 dim s as String 'この場合VBでは自動型変換が行われています。 'C#では厳密な型変換が要求されるため、エラーになります。 s = 100 'この場合VBでは引数なしのメソッドの()の省略を許容しToStringメソッドを実行します。 'C#では引数の省略はできませんので、ToStringという書き方はエラーになります。 s = 100.ToString 'この場合はC#およびVBともにToStringメソッドが実行されます。 s = 100.ToString()

関連するQ&A

  • VB6にも「ToString」ってありますか?

    VB.NETには「ToString」がありますが、VB6でこれと同じ機能をもつものってありますか?もしかしてVB6にも「ToString」ってありますか? VB6で開発しているときに、例えば「2008/10/10」と日付型になっているものを「20081010」という文字型、もしくは数値型にして扱いたいのですが... なにぶん素人ですので、質問があいまいかと思いますがよろしくお願いします。

  • Cで作成したDLL関数をVBから呼ぶ(.NET)

    以前の質問に「Cで作成したDLL関数をVBから呼ぶ」(QNo.1703839)がありますが、下記のコードを見るとVB6での内容だと思います。 Dim keydata As String * 128 keydata = String$(128, Chr(0) & Chr(0)) VB.NETでVC++のDLLで変更した文字列を受けたいのですが、 どのようにすればよいのでしょうか? VB.NET2003 <DllImport("DllTest.dll")> Private Shared Function _ Test(ByVal s1 As String) As String End Function Private Sub btnTest_Click(...) ... Dim s1 As String = "abc" Dim s2 As String Dim s3 As String s2 = Test(s1) MessageBox.Show(s2) ' "1"が表示される s3 = StrConv(s2, VbStrConv.None) MessageBox.Show(s3) ' 同じく"1"が表示 end sub VC++のDLL extern "C" __declspec (dllexport) BSTR __stdcall Test(char* s1) { AfxMessageBox(s1); // "abc"が表示される OK strcpy(s1, "123"); CString s2; s2 = "123"; return s2.AllocSysString(); } また、文字列に全角を含めても大丈夫でしょうか? Unicodeの変換処理を行う必要があるのでしょうか? よろしくお願いします。

  • .NET 文字コードの変換

    VB2008で文字列を他の文字コードにする方法が知りたいです。 何かしての部分がわかりません。 VB2005でも使えるものだったらうれしいです。 Dim str_sjis as string Dim str_euc as string = "パソコン" '例えばEUC-JP '''何かして str_sjisにシフトJISで文字列が入っている。 .Netの文字コードの変換の仕方がごちゃごちゃして分かりづらいです。

  • VB.NETのToString("P")について

    お世話様です。 VB.NETのToString("P")についてお聞きしたいことが御座います。 (1).ToString("P") = "100.00%"で変換した文字列を再度、1に戻す為には、 「("100.00%").Replace("%", "")) / 100」の方法しかありませんか。 他に方法があれば教えて頂きたいです。 宜しくお願い致します。

  • WebBrowserの読み込み待ちの処理の仕方

    VB2005にてプログラムしております。 WebBrowser内にて表示したページでID、PASSを自動入力、ログインするというプログラムですが、 -------------------------------------------------------------     Dim IDCODE As String = TextBox1.Text Dim PASSCODE As String = TextBox2.Text '文字列で指定したURLに飛ぶ WebBrowser1.Navigate("https://XXXXXXXXX.ne.jp/") '表示終了まで待つ ??????    ‘WebBrowser1へID、PASS入力処理 ------------------------------------------------------------- 上記の ?????? 部分に表示待ちの処理をするコードを入れると思うのですが、 With WebBrowser1 Do While .IsBusy = True Loop Do While .ReadyState <> "complete" Loop End With を入力すると読み込み途中で止まってしまうみたいです。 なにかいい方法がありますか?

  • VB6で配列を文字列に変換する方法?

    VisualBasic6を使っております。 Dim ary() As Byte Dim s as String 配列を文字列に変換したり、文字列を配列にしたいのですが どのようにすれば良いのでしょうか?

  • VB2008でEXCELのセルデータが読めません

    VB2008でEXCELを開き、セルの内容を読み込もうとしましたが読み込めません。 EXCELのオープンとセルの読み込みは下記により行いました。 Dim strExcelFile As String 'エクセルファイル Dim xlApp As Excel.Application       Dim strExcelData As String xlApp = CreateObject("Excel.Application") xlApp.Workbooks.Open(Filename:=strExcelFile) xlApp.Visible = True 'EXCELは表示されている strExcelData = xlApp.Cells(3,4).ToString EXCELの3列4行には数値が入っていますが、strExcelDataには"System._ ComObject"というデータが読み込まれています。 ToStringは、これをつけないとデータの型が違うとエラーになります。 EXCELのデータは文字型と思っていましたがこれも判りません。 VBのMicrosoft Excel9.0Object LibraryをクリックしてOKしています。 原因の見当が皆目つかず困っています。

  • toString()メソッドについて

    ある本に、 ------------------------------------------------------------------------- System.out. println(car1); 特に何も準備せずに上のコードを記述すると、Objectクラスから継承したtoString()メソッドが呼び出されます。 そしてこのtoString()メソッドの戻り値となっている「Car@数値」という文字列が画面に出力されるようになっているのです。 ------------------------------------------------------------------------- と書いてありましたが、toString()メソッドの戻り値となっている「Car@数値」という文字列が画面に出力とはいったいどういう意味でしょうか?

    • ベストアンサー
    • Java
  • VB6のバグか?

    VB6のバグか? 下記のように、 文字列「278754742940.733」を数値に変更し、1000倍にすると、278754742940732になったんですよ。 Private Sub Command1_Click() Dim s As String s = "278754742940.733" Dim d As Double d = Val(s) * 1000 MsgBox Fix(d) 'intも同じ End Sub 結果: 278754742940732 どうすれば、解決できますか?

  • 正規表現で指定したURLに飛びたいのですが・・・・

    お世話になっております。 VB2005ユーザーです。 こちらで回答をいただくみなさんには頭が下がる思いでいっぱいです。 もう少々、お力をお貸しいただけませんか。 宜しくお願いいたします。 当方、環境はVB2005です。 WebBrowserにて、HTMLを操作していくプログラムに挑戦しています。 ある特定の文字列のリンクに飛ぶには、正規表現を使用し、URLを抽出するというところまでわかったのですが、 この正規表現の部分をwindowsフォーム内のテキストボックスの文字列にするにはどのようにしたらよいでしょうか? 以下は当方がチャレンジしましたが、無理だったパターンです。 Dim r As Regex = New Regex( _ "<a\s+[^>]*href\s*=\s*(?:""(?<1>[^""]*)""|(?<1>[^\s>]+))[^>]*\s*.*" + TextBox1.text, _ RegexOptions.IgnoreCase Or RegexOptions.Compiled) Dim m As Match = r.Match(.Document.Body.InnerHtml) Dim St As String = m.Groups(1).Value '拾ってきたコード .Navigate(St) ・・・というようにしました。 上記の「+ TextBox1.text」の部分にテキストボックス内の文字列を挿入したいのです。 「+ TextBox1.text」の箇所を「TextBox1.text"」とすれば「TextBox1.text」自体を探してしまいますし・・・。 ちょっと行き詰ってしまいまして。 ご教授いただければ幸いでございます。 宜しくお願いいたします!!

専門家に質問してみよう