2

如何在 Metro c# 中获取字符串实习生方法。如果在 windows 8 c# 中找不到,是否有任何等效方法来维护系统对指定字符串的引用。

4

1 回答 1

11

这是 CLR 中内置的语言投影不可避免的副作用,它启用了“.NET for Metro 风格应用程序”api。该投影将从 WinRT api 调用获得的字符串映射到 System.String。底层字符串根本不是托管字符串,也不存在于垃圾收集堆上。它是一个 HSTRING。 语言投影使其表现得像 System.String

因此,在该 api 中,String 类没有非常特定于托管字符串的方法。像 Intern() 和 IsInterned() 一样,它只能用于托管字符串。Copy、Clone 和 GetEnumerator 也一样。对此没有解决方法,对 mscorlib 中托管 String 类的访问完全被引用程序集阻止,它将类型转发到 System.Runtime.dll。如果没有这种方法,你必须让它工作。

于 2012-07-17T12:44:36.657 回答