Re: [心得] C#基础名词解释

楼主: wulouise (在线上!=在电脑前)   2022-01-21 22:52:37
※ 引述《rz2x (弗朗西尔我婆)》之铭言:
建议笔记要调整一下顺序
# Value type
每次assignment都是pass by value.
int a = 1;
int b = a;
b = 3; // a == 1
# Reference type
每次assignment都是pass by reference. 所有reference指向同一物件
class foo{public int bar;};
foo f1 = new foo();
f1.bar = 0;
foo f2 = f1;
f2.bar = 2;
Console.WriteLine(f1.bar) // 2 因为f1 f2指向同一人, 容易出bug
Live demo: https://dotnetfiddle.net/z5NhhX
: 5.Class:类别,质型别,包含属性及方法,内存位在Heap上,可继承
: 6.Struct:结构,参考型别,包含属性及方法,内存位在Stack上,不可继承
C# class: reference type.
C# struct: value type.
为什么重要,主要是reference type, value type的特性差异
stack & heap在C#算是implementation detail 不用太在意
见"The Truth about Value Type"
https://ericlippert.com/2010/09/30/the-truth-about-value-types/
: 9.Field:字段,不具有get或set的变量
: 10.Property:属性,具有get或set的变量
getter setter可以做什么? 有什么好处? 才是他的意义
: 16.Stack:存放值的内存区块,系统自行配置。内存释放顺序为先进后出。
: 17.Heap:存放参考类型(物件)的内存区块,由使用者配置,若其中的指向为空,则记
: 忆体由GC自动释放。
同上 Eric Lippert那篇看完你可以跟面试官讨论:allocation的位置在C#重要嘛?
: 18.修饰子: public、private、protect、internal、sealed
应该说是access modifier
unsafe这种也算modifier
: 21.GC:Garbage Collection垃圾回收机制,系统自动搜寻内存中那些部分是曾用到但
: 现在不使用的,找到后会进行内存释放,其触发时间不固定
What are GC Generation 0/1/2?
作者: godsparticle (阿粒)   2022-01-22 05:55:00
推这篇
作者: a12838910 (Ziv.C)   2022-01-22 09:48:00
作者: ntpuisbest (阿龙)   2022-01-22 09:59:00
终于懂什么是pass by value了,感恩
作者: testPtt (测试)   2022-01-22 10:44:00
然后人家就爱问string是什么type
作者: klandakuei (把ㄅㄨ)   2022-01-22 14:04:00
作者: TAKADO (朕没给的你不能抢)   2022-01-23 00:27:00
推这篇,真的写一阵子之后才会认真意识到pass by value/ref,搞懂就可以进化成独当一面的c#程序猿了。这类问题要拿来鉴别junior senior很有用。
作者: acgotaku (otaku)   2022-01-23 01:53:00
pass by value/ref 不就写cpp第一个入门知识这怎么可能鉴别出junior/senior这都没搞清楚怎么写code ?
楼主: wulouise (在线上!=在电脑前)   2022-01-23 11:44:00
这篇是c#不是c++...而且c# 没加&也会pass by ref
作者: choral   2022-01-23 12:06:00
pass by ref也可以考array list dictionary的实作, 还有shallow/deep clone等观念
作者: gekkou (X 1106)   2022-01-23 14:29:00
pass by value/pass by refence 应该是junior 会考的问题如果连这个都不太懂的话,建议重修下程式语言比较好一点
作者: dnabossking (少狂)   2022-01-23 17:42:00
我通常会从value type ref type开始考、传值、传参、boxing unboxing,深拷贝、浅拷贝,stack heap,一路考到设计面
作者: TAKADO (朕没给的你不能抢)   2022-01-23 17:46:00
对,以前我也想说怎么的可能value/ref的考题会有用,结果我们公司放了一题在考卷里,这半年来两年年资以下的基本上全军覆没,写.Net三年五年会错的人也大有人在。
作者: choral   2022-01-23 19:06:00
那考concurrency, parallel processing不就倒更多?
作者: lturtsamuel (港都都教授)   2022-01-23 21:57:00
太惨了吧 我们也有这题但是还没看人连基础的都讲不出
作者: adarkair (路人)   2022-01-26 14:51:00
Pass by value/reference 应该跟变量是否为 value/reference type 无关吧?
作者: nayeonmywife (sanamywife)   2022-01-28 18:41:00
Pointer消失后所造成的名词混淆
作者: zxcasdjason1 (nice_Sky)   2022-01-30 18:14:00
是觉得有点夸张 JS也有类似考题
作者: nfsong (圖書館我來了)   2022-02-08 16:32:00
作者: cathychg (凯西)   2022-02-09 12:14:00
这JAVA 玩的更彻底。oo啊…囧囧囧
作者: kaltu (ka)   2022-03-04 14:02:00
pointer pass by value 比较好玩

Links booklink

Contact Us: admin [ a t ] ucptt.com