C# 仍在使用;公共字符串(字符*值)";现在?
我发现(在字符串“class”(.NET)的(定义)内部): 评注中写道:C# 仍在使用;公共字符串(字符*值)";现在?,c#,string,unsafe,null-terminated,unsafe-pointers,C#,String,Unsafe,Null Terminated,Unsafe Pointers,我发现(在字符串“class”(.NET)的(定义)内部): 评注中写道: // Parameters: // value: // A pointer to a null-terminated array of Unicode characters. 我的问题是: 我只能在不安全的上下文中使用它吗?现在使用该字符串(char*value)是否仍然有意义,或者这只是基于“ABC\0”(该字符串的终止)的过去的遗物 如果我可以/应该使用它,这种方法的情况是怎样的
// Parameters:
// value:
// A pointer to a null-terminated array of Unicode characters.
我的问题是:
我只能在不安全的上下文中使用它吗?现在使用该字符串(char*value)是否仍然有意义,或者这只是基于“ABC\0”(该字符串的终止)的过去的遗物
如果我可以/应该使用它,这种方法的情况是怎样的 我们有两种可能的情况:
char*
,此方法允许您在完成不安全操作后将char*
转换为标准.NET字符串不安全代码的可能用例超出了本问题的范围。@Nishant。我想到了“不安全{char c=’g’;char *PC= & c;控制台。Writeline(c);}”它看起来比C/C++更胜于C,尤其是语法让我想起了过去的过去,用来将人们从C++代码中解压到C代码。我想,在一些罕见的情况下,P/调用非托管代码并返回以null结尾的字符串可能会很有用,但通常情况下,您可以进行设置,以便封送处理程序为您处理。请注意,它是C#
字符
,因此是unicode字符串。。。在C/C++中,它应该是wchar\t
。如果您想要“8位字符串”,则另一组构造函数接受sbyte*
// Parameters:
// value:
// A pointer to a null-terminated array of Unicode characters.