错误CS0120:非静态字段、方法或属性'Encoding.GetBytes(string)'需要对象引用

我正在使用.NET制作一个控制台应用程序,当我运行这个程序时,出现了这个错误。error CS0120: An object reference is required for the non-static field, method, or property Encoding.GetBytes(string). 它说错误来自这一行:content.Add(Encoding.GetBytes("\n"+str));(content是string类型的列表,str是string)

✅ 最佳回答:

Encoding.GetBytes Method文档中:

公共虚拟字节[]GetBytes(char[]chars);

它不是静态方法,因此不允许直接调用Encoding.GetBytes方法。

相反,您需要声明并分配一个Encoding变量;然后才使用这个变量来调用GetBytes方法。

var str = "Happy ending"; // Sample data
var encoding = Encoding.UTF8; // Set to your desired encoding
var bytes = encoding.GetBytes("\n"+str); // Return type: byte[]

要将bytes添加到列表的内容中,可以首先将bytes转换为所需的格式。

[不是.ToString(),它将返回结果:"System.Byte[]"]

var byteString = String.Join(" ", bytes);  // Format to your desired format
// Result of byteString: 10 72 97 112 112 121 32 101 110 100 105 110 103
content.Add(byteString);