「'System.Text.StringBuilder'から'char[]'へ変換することができません。」のメッセージが表示され解決に困っている場合、
本記事が参考なると思います。
ついつい StringBuilder を String と勘違いし以下のようなエラーが Visual Studio上で表示され、「なぜ!?」となった場合は
ToString()するだけです。
C#とVisual Basic(VB)のサンプルコードを以下に記します。
StringBuilder変数sbをそのままGetBytes()の引数に渡しています。
GetBytes()はStringを要求しているためエラーとなります。
using System;
using System.Text;
class Program
{
static void Main(string[] args)
{
byte[] b;
StringBuilder sb = new StringBuilder();
sb.Append("あいうえお");
b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb);
}
}using System;
using System.Text;
class Program
{
static void Main(string[] args)
{
byte[] b;
StringBuilder sb = new StringBuilder();
sb.Append("あいうえお");
b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb.ToString());
}
}StringBuilder変数sbをそのままGetBytes()の引数に渡しています。
GetBytes()はStringを要求しているためエラーとなります。
Imports System
Imports System.Text
Module Program
Sub Main(args As String())
Dim b As Byte()
Dim sb As StringBuilder = New StringBuilder()
sb.Append("あいうえお")
b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb)
End Sub
End ModuleImports System
Imports System.Text
Module Program
Sub Main(args As String())
Dim b As Byte()
Dim sb As StringBuilder = New StringBuilder()
sb.Append("あいうえお")
b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb.ToString)
End Sub
End Module以上、StringBuilderはToStringを使ってStringに変換し、Byte配列に変換する必要があります。