您的位置:首页 > 编程语言 > C#

C#碎碎念(一)值类型与引用类型

2016-04-26 05:02 489 查看
凌晨四点写这种东西,一股森森的咏春打木桩的既视感。

说要强化语言其实是个很棘手的事情,因为一个人不知道自己不知道什么,不过好在鄙人在此方面积淀尚薄弱,随便翻翻书也能有所收获。

预计会将专门学习C#的周期计划从五周压缩到三周,比如我一开始是想先讲“反射”的,但翻完一整章实在又不知道从何说起,毕竟实战出真知,有些东西项目中暂时用不到就真是没法学。所以不求全,短期内随便能总结几点是几点吧。

回到正题。

先说个笑话,一开始我看C#代码时,想来想去惊呼搞毛啊,这函数把参数对象直接复制进来,搞东搞西最后不还是他喵的没改变参数的实际值么?!中了C++传指针传引用的毒。

当然随即了解到,C#中除了少数类型是按值传参,大多数类对象都是按引用处理的。

具体大概是值类型包括int、float等 + enum + struct,引用类型包括class等+string+array。

然后呢,你以为就这么简单么?那就太年轻了。

比如我猛然又发现《C#本质论》讲ref时,是拿string参数做例子的。说好的引用呢?为什么还要加ref?

然后我就翻到这篇文章讲得很清楚了:

net中String是引用类型还是值类型

评论中有句话说得好——“穿着值类型马甲的引用类型”。

类似的坑比事情目测还有很多,我们不要在意,继续往下走就好了。

为了凑篇幅最后加点tips:

1.预处理指令#warning可以用来提醒开发者任务尚未完结。给那些临时性代码做标记应该不错


2.VS安装目录就能找到微软出的C#语言规范文档,还是中文版。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: