2015-08-28 40 views
0

C#默認平臺調用對方法參數和結構字段字符串使用ANSI編組。「DefaultCharSetAttribute」是否也適用於「StructLayoutAttribute.CharSet」?

System.Runtime.InteropServices包含一個屬性「DefaultCharset」以將其更改爲Unicode。

從MSDN:「在程序集級別或模塊級別應用DefaultCharSetAttribute屬性,爲任何不包含用戶指定的CharSet命名參數的DllImportAttribute調用設置CharSet值。

我的問題是:該屬性是否也設置了「StructLayoutAttribute.CharSet」的默認值?

謝謝!

回答

1

試試看:

using System; 
using System.Runtime.InteropServices; 

[module: DefaultCharSet(CharSet.Unicode)] 

class Program { 
    static void Main(string[] args) { 
     var sla = typeof(Foo).StructLayoutAttribute; 
     Console.WriteLine(sla.CharSet); 
     Console.ReadLine(); 
    } 
} 

struct Foo { }; 

輸出:

Unicode 

所以,是的。

相關問題