现在还在使用“public String(char * value)”吗?

时间:2015-08-14 07:45:37

标签: c# string unsafe null-terminated unsafe-pointers

我遇到了(字符串“class”(。NET))的内部(定义):

public String(char* value);

评论中写了什么:

    // Parameters:
    //   value:
    //     A pointer to a null-terminated array of Unicode characters.

我的问题:

我是否只能在不安全的环境中使用它,现在使用那个String(char *值)仍然有意义,或者这只是过去的遗留物,基于这个“ABC \ 0”(终止它字符串)?

如果我可以/应该使用它,这种方法的情况如何?

1 个答案:

答案 0 :(得分:1)

嗯,我们有两种可能的情况:

  1. 您不需要使用不安全的代码。如果您不需要使用不安全的代码,请不要使用不安全的代码。你永远不会使用这个字符串构造函数。

  2. 您需要使用不安全的代码。如果由于某种原因需要处理不安全的代码和char*¹,此方法允许您“转换”{{{完成不安全的操作后,请转到标准的.NET字符串。

  3. ¹不安全代码的可能用例超出了本问题的范围。