- 題名: キャストが失敗します
- 日時: 2006/01/12 14:19:14
- ID: 14470
- この記事の返信元:
- (なし)
- この記事への返信:
- [14471] Re[1]: キャストが失敗します2006/01/12 14:53:36
- ツリーを表示
■No14475に返信(エツさんの記事)
> ところで最初の質問は
> > Dim objects As Object() = New Object() {"a", "b", "c"}
> でなくて
> Dim objects As Object = New Object() {"a", "b", "c"}
> ですから
> > Dim str3 As String() = New String(objects.Length - 1) {}
> が使えません。
> ですので上手くいきません。
もうちょっと突っ込めばわかりますが、
Private Shared Sub MakiMakiLove()
Dim oSource As Object = New Object() {"1", "2", "3"}
Dim oArray As System.Array = DirectCast(oSource, System.Array)
Dim strings As String() = New String(oArray.Length - 1) {}
oArray.CopyTo(strings, 0)
End Sub
というわけで、このような場合はそもそも Object 型は使わず、System.Array を使います。
> object[]なんてStringに対して使う場面はないが。
これは、上記の意味はなく、そのような型 (配列であることとか) を損失する場面はない。
ということなのでしょう。
__________________________________________________
じゃんぬ Microsoft MVP for Visual Developer - C#
http://jeanne.wankuma.com/
http://blogs.wankuma.com/jeanne/
分類:[.NET]
いつもお世話になります。
キャストについて教えて下さい
1.次のキャストは成功します。
Dim str2 As Object = New String() {"a", "b", "c"}
Dim str3() As String = DirectCast(str2, String())
2.次のキャストは失敗します。
Dim str2 As Object = New Object() {"a", "b", "c"}
Dim str3() As String = DirectCast(str2, String())
2.のキャストを成功させるためには
Dim str3() As String = DirectCast(str2, String()) を
どのように記述すればよいのでしょうか?
宜しくお願いします。