C#中使用的指针在哪里? 我对C语言环境很陌生,现在我已经用C++编码了一段时间了。在C#中,在哪里使用指针?建议在C#中使用指针吗?

C#中使用的指针在哪里? 我对C语言环境很陌生,现在我已经用C++编码了一段时间了。在C#中,在哪里使用指针?建议在C#中使用指针吗?,c#,pointers,C#,Pointers,您可以使用指针,但只能在“不安全”模式下使用。你永远不会在普通的C#编码中使用它们 所有类都继承自对象,称为“引用”类型。这些类型是通过引用传递的,引用主要是一个隐藏在引擎盖下的指针,它对程序员隐藏了地址之类的细节 这些是您的“指针”,但您永远不会删除它们,因为C#中的所有内容都是垃圾收集的,您可以像访问对象本身一样访问它们(no->operator) 像int、double和char这样的类型都是“值”类型,并且是按值传递的(就像在C++中一样)。您也可以通过引用传递这些值,但在调用函数签名时

您可以使用指针,但只能在“不安全”模式下使用。你永远不会在普通的C#编码中使用它们

所有类都继承自
对象
,称为“引用”类型。这些类型是通过引用传递的,引用主要是一个隐藏在引擎盖下的指针,它对程序员隐藏了地址之类的细节

这些是您的“指针”,但您永远不会删除它们,因为C#中的所有内容都是垃圾收集的,您可以像访问对象本身一样访问它们(no->operator)

int
double
char
这样的类型都是“值”类型,并且是按值传递的(就像在C++中一样)。您也可以通过引用传递这些值,但在调用函数签名时必须使用
ref
关键字


struct
是另一种特殊情况,它是“值”类型

在C#中,唯一可以实际使用指针的地方是不安全的代码区域,这通常是不受欢迎的。剩下的时间,运行时将为您管理内存。

struct呢?“它是按价值传递的吗?”乔纳森·莱因哈特,这比我给出的解释要好得多。谢谢我已经编辑了我的答案以使用它。@user2495173,结构是值类型,编辑后包含了它。@BradleyDotNET:谢谢!