呃,C#中好像没有wchar, char chr = '中',然后Console.WriteLine(chr),显示也是确定的,应该没有丢失数据。
追答c#没有这么严格,所以他自动内部处理了。这就是高级语言呀,越高级,对申明变量的控制越来越要求低了,内部自动帮你处理好了。sizeof肯定没有用呀,内部自动自动处理的,对齐上一个字符总是预留一个空白字节的,所以你sizeof还是1.估计是这个原因,内存分配上c#估计就是这样干的,对内存很不负责呀,浪费内存,虽然现在机器无所谓,但是毕竟对齐是个浪费内存的东西
用Marshal.SizeOf((typeof(char));试了一下,但是返回结果是1,说明是只占一个字节啊。
糊涂了...
直接用sizeof(char)返回2。据MSDN,Marshal.SizeOf得到的是非托管类型的大小,就是char在非托管代码中的大小。
本回答被提问者采纳