为什么Marshal.Sizeof不能用于字符串?

时间:2014-01-27 18:07:33

标签: c#

string s = "hello";
Console.WriteLine(Marshal.SizeOf(s)); // gives error

Marshal.Sizeof适用于其他数据类型,如int,char等,但不适用于字符串数据类型。有什么具体原因吗?

1 个答案:

答案 0 :(得分:5)

字符串是引用类型(class)而不是值类型(struct)。

Marshal.SizeOf

  

此方法接受结构的实例,该实例可以是引用类型或盒装值类型。布局必须是顺序的或明确的。