3

Visual Basic 9 (VS2008) と TagLib を使用しています。

次のコードは、MP3 ファイルからアルバム アートを抽出し、PictureBox に表示します。

このコードを記述するより良い方法はありますか?

 Dim file As TagLib.File = TagLib.File.Create(filepath)

 If file.Tag.Pictures.Length >= 1 Then
    Dim bin As Byte() = DirectCast(file.Tag.Pictures(0).Data.Data, Byte())
    PreviewPictureBox.Image = Image.FromStream(New MemoryStream(bin)).GetThumbnailImage(100, 100, Nothing, System.IntPtr.Zero)
 End If
4

2 に答える 2

3

一見、私には大丈夫に見えます。

TagLib.File.Create()がエラーをスローしたり、" " を返したりする場合など、エラー処理を追加できますNothing。また、Tag何らかの理由でプロパティが空の場合、" " にアクセスしようとするとエラーがスローされます.Pictures

于 2009-01-24T15:05:29.413 に答える
2

私は TagLib に精通しているわけではありませんが、これを記述するためのより良い方法があるようには見えません。私ができる唯一の提案は、型推論を利用してコードの量を減らすことができるということです。「Option Infer」が現在オンになっている場合、2 つの変数宣言に明示的な型は必要ありません。ただし、これは実際にはコードの品質を変更するものではなく、コードの量を減らすだけです。

 Option Infer On
 ...
 Dim file = TagLib.File.Create(filepath)

 If file.Tag.Pictures.Length >= 1 Then
    Dim bin = DirectCast(file.Tag.Pictures(0).Data.Data, Byte())
    PreviewPictureBox.Image = Image.FromStream(New MemoryStream(bin)).GetThumbnailImage(100, 100, Nothing, System.IntPtr.Zero)
 End If
于 2009-01-24T15:21:29.693 に答える