C#相当于一个const指针/指向C中的const的指针
发布时间:2020-12-16 01:52:08 所属栏目:百科 来源:网络整理
导读:我正在学习C语言的基础知识,来自.NET世界(C#). 我发现有趣的一个主题是const关键字及其与指针的使用(const指针/指向const的指针). 我想知道是否有任何C#语言等同于C指向const的const指针/指针? (我知道C#没有指针,我正在考虑引用C#中类似指针的类型). 另外,
我正在学习C语言的基础知识,来自.NET世界(C#).
我发现有趣的一个主题是const关键字及其与指针的使用(const指针/指向const的指针). 我想知道是否有任何C#语言等同于C指向const的const指针/指针? 另外,出于兴趣,如果没有这样的等价物,那么不包括这样一个特征的决定是什么? 解决方法
没有直接等同于在C#中将引用作为“const”传递,但是有其他方法可以实现其目的.最常见的方法是使您的引用类完全不可变(一旦构造,其状态永远不会更改)或将其作为不可变的公共接口传递.后者最接近’const’参数契约的意图(我给你一些参考,所以你可以使用它,但我要求你不要改变它.)一个行为不端的客户可能’当然,将公共界面抛弃为可变形式,但它仍然明确了意图.你也可以在C中“抛弃”const,认为这很少是一个好主意.
C中的另一件事是当你知道你传递的引用的生命周期在范围上有限时,你通常更喜欢传递为const. C经常遵循在方法范围内在堆栈上创建和销毁对象的模式,因此对这些对象的任何引用都不应该在该范围之外持久化(因为在它们超出范围之后使用它们可能会导致真正令人讨厌的堆栈损坏崩溃.) const引用不应该被改变,所以它是一个强烈的暗示,将它存储在某个地方以便稍后引用将是一个坏主意.使用const参数的方法很有希望传递这些范围的引用是安全的.由于C#从不允许存储对堆栈上对象的引用(在参数之外),因此这不是一个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 修改二维数组ruby
- ruby-on-rails – 查找具有大于特定关联x的所有对象
- ruby-on-rails – 安装rubyMine时出错,没有指定SDK,但已列出
- c# – 创建一个新的AnonymousType实例
- [AJAX]:入门小实例,走进AJAX
- sublimetext3 – Sublime文本语法着色报价问题
- c# – 在WebBrowser控件中,window.external不可用
- 65条最常用正则表达式,你要的都在这里了
- ruby-on-rails – 如何在Ruby on Rails中更改路由名称
- ios – 如何使用NS_DESIGNATED_INITIALIZER并覆盖init?