使用C#’ref’关键词与C相比
发布时间:2020-12-15 06:56:25 所属栏目:百科 来源:网络整理
导读:我主要在C工作,现在我正在使用C#来完成我的新工作,在做了一些关于’ref’关键字和c#值与参考类型的阅读后,我仍然发现一些混淆. 据我了解这些,如果你把这些传递给一个方法,这将是类似的C风格: 价值类型: public void CSharpFunc(value) 和 public void CPlu
我主要在C工作,现在我正在使用C#来完成我的新工作,在做了一些关于’ref’关键字和c#值与参考类型的阅读后,我仍然发现一些混淆.
据我了解这些,如果你把这些传递给一个方法,这将是类似的C风格: 价值类型: public void CSharpFunc(value) 和 public void CPlusplusFunc(value) 参考类型: public void CSharpFunc(reference) 和 public void CPlusPlusFunc(&reference) ‘ref’/指针 public void CSharpFunc(ref bar) 和 public void CPlusPlus(*bar) 这是一个正确的比喻吗? 解决方法
尽管其他答案都说了,不.什么参考C意味着C实际上取决于类型.对于价值类型,您的评估是正确的(或足够接近).对于参考类型,更合适的类比将是参考指针: public void CPlusPlus(type*& bar) 关于参考的全部内容是,您可以更改传入的引用.您不能通过简单地传递指针来在C中执行此操作: void f(type* bar) { bar = new_address; } type* x; f(x); 这段代码不会改变调用者的x值.如果你已经通过了类型*& amp;;另一方面,它会改变价值.那就是参考文献. 此外,C#中的引用与C中的引用非常不同,更像C中的指针(可以更改引用引用的对象). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |