C#学习教程:DotNet – 什么是int *?分享


DotNet – 什么是int *?

简单的问题,我导入一个DLL函数,参数是int *。 当我尝试输入Method(0)时,我收到一个错误,上面写着:“int和int *无法转换”。

那是什么意思?

这是pointer to an intpointer to an int经典C表示法。 每当类型后跟一个* ,它表示该类型作为指向该类型的指针 。 在C#中,与C语言不同,除了在项目属性中启用不安全的代码之外,还必须将函数显式定义为使用指针不安全 。 指针类型也不能直接与具体类型互换,因此必须首先引用类型的引用。 要在C#(或C&C ++)中获取指向另一个类型(如int)的指针,必须在要获取指针的变量前面使用解引用运算符& (&符号):

 unsafe { int i = 5; int* p = &i; // Invoke with pointer to i Method(p); } 

‘不安全’代码C#

下面是一些关于不安全代码和C#中指针使用的重要文章。

它是指向int的指针 。 通常最好避免托管代码。 您可能希望发布导入的方法声明。 对于这种互操作,IntPtr通常就足够了。

这取决于您使用的语言。 在C#中,您应该使用“ref”关键字声明参数。 在VB.NET中,您应该使用ByRef关键字。 你需要通过传递变量而不是常量来调用它。 像这样的东西:

上述就是C#学习教程:DotNet – 什么是int *?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

  int retval = 0; Method(ref retval); // Do something with retval //... 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031965.html

发表评论

邮箱地址不会被公开。 必填项已用*标注