DotNet–什么是int*?简单的问题,我导入了一个DLL函数,参数是int*。当我尝试输入Method(0)时,我收到一条错误消息:“无法转换int和int*”。这意味着什么?Thisispointertoanint经典C符号表示指向int的指针。每当一个类型后跟一个*时,它就将该类型表示为指向该类型的指针。在C#中,与C不同,除了在项目属性中启用不安全代码外,还必须将函数显式定义为不安全才能使用指针。指针类型也不能直接与具体类型互换,因此必须首先引用对该类型的引用。在C#(或C&C++)中要获取指向另一种类型(如int)的指针,必须在要获取指针的变量前使用解引用运算符&(&符号):unsafe{inti=5;int*p=&i;//使用指向i的指针调用Method(p);“不安全”代码C#这里有一些关于C#中不安全代码和指针用法的精彩文章。它是一个指向int的指针。通常最好避免托管代码。您可能希望发布导入的方法声明。对于这种互操作,IntPtr通常就足够了。这取决于您使用的语言。在C#中,您应该使用“ref”关键字声明参数。在VB.NET中,您应该使用ByRef关键字。您需要通过传递变量而不是常量来调用它。大概是这样的:以上是C#学习教程:DotNet-Whatisanint*?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——intretval=0;方法(refretval);//Dosomethingwithretval//...本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
