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

error CS0120: An object reference is required for the non-static field, method, or property '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));(内容是字符串类型的List,str是字符串)

Encoding.GetBytes Method 文档中:

public virtual byte[] 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 添加到 List 的内容中,您可以先将 bytes 转换为所需的格式。

[不是.ToString(),它会returns结果:“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);