- 題名: string型配列へのキャストについて
- 日時: 2006/06/30 13:49:35
- ID: 16415
- この記事の返信元:
- (なし)
- この記事への返信:
- [16418] Re[1]: string型配列へのキャストについて2006/06/30 18:39:29
- ツリーを表示
■No16415に返信(たけっちさんの記事)
> System.Arrayからstring()へのキャストがわからないので教えてください。
ミニマム コードを書いてみましたが、普通にできるようです。
Dim retv As Object = New String() {"中博俊", "じゃんぬ", "Jitta"}
If TypeOf retv Is System.Array Then
Dim rv As Array = DirectCast(retv, Array)
Dim st As String() = DirectCast(rv, String())
End If
> option static on でプログラムしていています。
> option static offならOKなのですが、できればONの状態で
Option Strict ではないのでしょうか?
分類:[.NET]
お世話になっております。 System.Arrayからstring()へのキャストがわからないので教えてください。 BASP21.DLLを使用して、メールの受信プログラムを作っています。 メール受信のメソッドの戻り値がobject型で戻ってきます。 内部はsystem.arrayです。 option static on でプログラムしていています。 Dim files As Array = DirectCast(mailRcv, Array) For Each v As String In files Dim retv As Object retv = bobj.ReadMail(szDir & "\" & v, "from:", szDir) If retv.GetType.IsArray Then Dim mc As String Dim rv As Array = DirectCast(retv, Array) Dim r As String() = DirectCast(rv, String()) mc = bobj.Match("/(" & s(pattern) & ")/", r(1)) '↑こうやって取り出したい If Len(mc) > 0 Then arrUrlList.Add(mc) End If End If Next これでビルドはできるのですが、実行時にsystem.object[]は system.string[]に変換できないと怒られます。 option static offならOKなのですが、できればONの状態で 行いたいと思います。 今はいちおう、下記のように一度配列をコピーしていますが Dim r As String() = New String(rv.Length - 1) {} rv.CopyTo(r, 0) 配列をコピーして使うのでなく、直接インデックス指定で値を 取得する方法はないでしょうか? よろしくお願いします。