- 題名: キャストが失敗します
- 日時: 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()) を
どのように記述すればよいのでしょうか?
宜しくお願いします。