C# NET中是否存在指针?
我想知道.NET技术中是否存在指针。如果是,是否有C#中指针的示例 请引导我。是的,它们确实存在C# NET中是否存在指针?,c#,.net,pointers,C#,.net,Pointers,我想知道.NET技术中是否存在指针。如果是,是否有C#中指针的示例 请引导我。是的,它们确实存在 还有一个使用它们的例子 是的,它们存在。你可以写。是的,它们确实存在 查看文档: 这些问题是: 还有一点关于不安全代码的介绍: 是的,但只是以有限的方式,请查看MSDN上的内容是的。你可以从link开始。是的,如果你使用了不安全的代码,你可以使用指针。有关详细信息,请参阅此MSDN部分:Hai, 我们可以在.net中使用指针,但由于自动垃圾收集,框架不支持指针。所以我们
- 是的,它们存在。你可以写。是的,它们确实存在
查看文档:
不安全的代码,你可以使用指针。有关详细信息,请参阅此MSDN部分:Hai,
我们可以在.net中使用指针,但由于自动垃圾收集,框架不支持指针。所以我们以非托管代码的形式编写。要使用非托管代码,请转到您的项目属性->构建->并启用允许不安全代码。
样本:
class UnsafeCode
{
//mark main as unsafe
unsafe public static void Main()
{
int count = 99;
int* pointer; //create an int pointer.
pointer = &count; //put address of count into pointer
Console.WriteLine( "Initial value of count is " + *pointer );
*pointer = 10; //assign 10 to count via pointer
Console.WriteLine( "New value of count is " + *pointer);
Console.ReadLine();
}
}
是的,指针是存在的
引用实际上是指针,但它们的特殊之处在于垃圾收集器知道它们并在移动对象时更改它们
指针可以在不安全的代码中使用,但是您必须确保垃圾收集器不会移动您所指向的东西
例如:
string x = "asdf";
unsafe {
fixed (char* s = x) {
char* p = s;
for (int i = 0; i < 4; i++) {
Console.WriteLine(*p);
p++;
}
}
}
string x=“asdf”;
不安全{
固定(字符*s=x){
char*p=s;
对于(int i=0;i<4;i++){
控制台写入线(*p);
p++;
}
}
}
请注意,必须使用fixed
命令保护要通过指针访问的托管对象不被移动,并且编译器不允许您更改所获得的指针,因此如果您需要可更改的指针,则必须复制它
您需要在项目设置中启用不安全代码,使用<代码>不安全的
关键字。 我将仔细查看您打算做什么,看看您是否试图在C++中编写C++代码。很少有情况下,不安全
代码是首选解决方案。C语言抽象的级别比C++高。因此,您可能需要考虑使用您所使用的语言的习语。 你想用这些指针做什么?通常的方法是使用参考文献(类似的参考文献)。这个问题很快就会被skeet所拥有。为了得到一个比任何其他人都能发布的答案更正确的答案,所以没有其他人会这样做,他们只会投票给那个答案,然后觉得自己很愚蠢。你能澄清一下“指针”是什么意思吗?你是说C型指针吗?