作者rz2x (弗朗西爾我婆)
看板Soft_Job
標題[心得] C#基礎名詞解釋
時間Fri Jan 21 00:46:06 2022
會發這篇文主要是面試被洗臉
我都會做啊
但我就不會解釋啊
雖然是寫給自己看的
但就分享出來吧
有錯請各位前輩提醒,我會修改
若有需要新增也請跟我說
謝謝
此份解釋僅為簡易版,想要詳細了解的話還是建議去看書
考試時照抄會死喔>_O
-----------------------------------------------
1.OOP:
Object-oriented programming物件導向
定義:以物件做為程式導向,藉此提高程式的重用性、靈活性、擴充性
1.封裝:限制能夠存取方法、欄位的對象
2.繼承:重複的程式碼只需撰寫一次,行為定義
3.多型:用於繼承、介面,同名稱的方法,內容卻不同
4.抽象:具有共同特性的類別及方法
5.多載:呼叫同名稱的方法時傳遞不同參數以執行不同的方法
2.MVC:Model–View–Control
Model:負責處理資料,不做畫面處理
View:負責畫面顯示,不做邏輯處理
Control:負責使用者操作
3.MVVM:Model-View-ViewModel
Model:負責處理資料,不做畫面處理
View:負責畫面顯示,不做邏輯處理
ViewModel:接受View的指令,給Model做處理,並將結果回給View
4.程式模組化:將巨大的功能拆分為小功能,提高程式設計效率、功能可重複使用、方便
擴充及除錯
5.Class:類別,質型別,包含屬性及方法,記憶體位在Heap上,可繼承
6.Struct:結構,參考型別,包含屬性及方法,記憶體位在Stack上,不可繼承
7.Object:物件,Class的實例化(new)
8.Variables:變數,直接對應到記憶體位置的物件
9.Field:欄位,不具有get或set的變數
10.Property:屬性,具有get或set的變數
11.Method:方法,function
12.Value Type:質型別,記憶體位置存放的是值。例:int a = 0;
13.Reference Type:參考型別,記憶體位置存放的是記憶體位置的。例int b = a;
14.Constructor:建構子,在類別中有一個與類別同名稱的方法,在實例化時設定物件
15.Global:全域記憶體,存放全域變數或宣告為static的變數。記憶體直到程式結束才
會釋放。
16.Stack:存放值的記憶體區塊,系統自行配置。記憶體釋放順序為先進後出。
17.Heap:存放參考類型(物件)的記憶體區塊,由使用者配置,若其中的指向為空,則記
憶體由GC自動釋放。
18.修飾子: public、private、protect、internal、sealed
19.Lambda:使用=>的匿名函式,例:(Array a, int b) => a.length > b;
20.型別:string、int、bool、List、Array等等
21.GC:Garbage Collection垃圾回收機制,系統自動搜尋記憶體中那些部分是曾用到但
現在不使用的,找到後會進行記憶體釋放,其觸發時間不固定
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.18.123 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1642697168.A.9D1.html
1F:→ shomingchang: 類別跟結構應該是差在value type 和 reference type 01/21 00:48
2F:→ rz2x: 漏寫了,我補上,感謝 01/21 00:49
※ 編輯: rz2x (49.216.18.123 臺灣), 01/21/2022 00:51:27
3F:→ shomingchang: 我覺得參考型別和值型別與heap, stack是獨立的概念 01/21 00:58
4F:→ shomingchang: 物件裡的變數有執行別和參考型別但都是在 heap 裡 01/21 00:59
5F:→ shomingchang: *值型別 01/21 00:59
6F:→ s06yji3: stack和heap的解釋建議你再去多了解一下 01/21 01:03
7F:推 shomingchang: 區別參考類型與值類型,應該是看變數存的是資料實 01/21 02:16
8F:→ shomingchang: 例還是參考。參考類型會有參考和資料需要儲存;值 01/21 02:16
9F:→ shomingchang: 類型則是只有資料。至於參考或資料要存放在哪裡是 01/21 02:16
10F:→ shomingchang: 實作細節,視上下文而定。 01/21 02:16
11F:推 dog30111: 認真給推 但我覺得繼承的說明改成實作多型會不會比較好 01/21 03:30
12F:→ vi000246: 該去翻翻clr via c#了 面試真辛苦 囧 01/21 08:59
13F:→ MoonCode: 罰寫課文喔? 01/21 09:16
14F:噓 pttano: 啥小,這還要特地記 01/21 09:21
15F:推 lwecloud: 謝謝讓我回想起大學程設課筆試部分 01/21 09:41
16F:→ t64141: property 是 field + getter + setter, 然後 get/set 是 01/21 10:12
17F:→ t64141: method 不是變數 01/21 10:12
18F:→ t64141: 存取修飾子還有 private protected 和 protected intern 01/21 10:15
19F:→ t64141: al 01/21 10:15
20F:推 MyNion: 好青春的感覺ㄛ 01/21 10:21
21F:推 BigCockman: 全都常識有什麼好記的 面試也不是要考你這些 而是能 01/21 10:35
22F:→ BigCockman: 不能舉例用過這些的例子 好壞處是什麼 01/21 10:35
23F:噓 royyy: 只有少數幾個名詞比較少講,其他幾乎都是常識阿! 01/21 10:49
24F:噓 qwer338859: 這些有要背嗎 不是常識? 01/21 10:52
25F:推 bill0205: 這些本來就不是給老手看的啊 給新手看還可以吧 01/21 10:57
26F:→ hisashi: 面試就會考這些 會背的也不一定會co...XD 01/21 11:24
27F:推 saphy: 分享給推 01/21 11:27
28F:推 xx820110: 分享給推 不過面試如果單純考名詞解釋真的感覺蠻無聊的. 01/21 11:39
29F:→ xx820110: ..還不如考像是String == 的結果之類的還比較好QQ 01/21 11:39
30F:→ sniper2824: ....嗯 01/21 11:47
31F:→ x246libra: 對程式設計師,這真的是基本,不能說你工作久了就忘了 01/21 12:05
32F:→ x246libra: ... 01/21 12:05
33F:推 Lhmstu: 其實在不同地方,每個人認知會有稍微差別 01/21 12:07
34F:→ Lhmstu: 這些只有在你實際使用過內心就會有一個概廓的形狀 01/21 12:08
35F:→ Lhmstu: 這些比起背誦中文要來的能夠說服人 01/21 12:08
36F:推 enthos: Open book:從dnSpy的RVA計算出對應的file offset#Game Mod 01/21 12:14
37F:→ ChungLi5566: 這些在面試答不出來挺誇張的 代表平常都在亂兜程式碼 01/21 12:28
38F:→ ChungLi5566: 會動就好 01/21 12:28
39F:推 holebro: 這個真的超基本 講不出來太扯 01/21 12:29
40F:→ a740125: 如果只是要你大概描述概念呢 你是真的說不出來嗎 01/21 12:32
41F:推 ap954212: 是本科都講得出來 01/21 12:41
42F:推 v7q4: 被考過argument和parameter的差別... 01/21 13:59
43F:→ foreverk: 還有process vs thread也是常見考題 01/21 14:05
44F:→ devilkool: 我反而很好奇你所謂不會解釋,是回答了什麼? 01/21 14:22
45F:→ devilkool: 難道直接說「窩不知道」嗎,連回想自己寫過的東西加以 01/21 14:24
46F:→ devilkool: 舉例都沒有? 01/21 14:24
47F:推 vi000246: 老實說考這個滿無聊的 像是在質疑你會不會寫程式一樣 01/21 14:33
48F:→ vi000246: 而且這東西可以問很細 細到底層怎麼編譯的都能問 01/21 14:33
49F:→ vi000246: 與其面試問這個 不如先發張線上考券 限時寫完 01/21 14:35
50F:→ vi000246: 要我到現場回答這些問題 我會覺得很浪費時間 01/21 14:36
51F:推 Wolfclaw: 這些答不出來基本功不太行 01/21 14:36
52F:推 jerry030897: 看起來是新手吧. 不會也沒差反正前輩code都寫好 01/21 14:56
53F:→ jerry030897: 改一改很簡單.阿如果你是前輩.工作久了自然就熟了 01/21 14:56
54F:→ jerry030897: 新手急著上工可以去面試不問這些的公司. 公司多的是 01/21 14:57
55F:推 u9541526: 印出來帶著,下次面試官問叫他自己看XD 01/21 15:15
56F:推 baobomb: MVC, MVP, MVVM 你講的出來每個元件的用處是什麼 但是我 01/21 15:25
57F:→ baobomb: 猜面試官想問的是 究竟這三個pattern的實際上的區別到底 01/21 15:25
58F:→ baobomb: 在哪 分別解決了什麼問題 怎麼解決的 我也很常面試別人 01/21 15:25
59F:→ baobomb: 時 問面試者一樣的問題 90%都跟你一樣 答的出來每個元件 01/21 15:25
60F:→ baobomb: 在幹嘛 但答不出來到底每種pattern的區別在哪 最後就是 01/21 15:26
61F:→ baobomb: 直接給他個no hire 01/21 15:26
62F:→ brucetu: 你的stack跟heap答案看起來像是要面試寫compiler的公司 01/21 16:07
63F:→ brucetu: 通常應該是指DS的stack跟heap吧 建議少抄課文 01/21 16:07
64F:→ brucetu: baobomb大說的回答方式才是對的 01/21 16:07
65F:→ eric00169: 對老手或許是常識 但也可以留給新鮮人啊 01/21 16:45
66F:推 acgotaku: 這應該EECS常識 但是還是推熱心 給非本科系的快速導覽 01/21 17:02
67F:→ rz2x: 我也覺得考這些很無聊啊,這週面試6間,就有1間考這種東西, 01/21 17:04
68F:→ rz2x: 不問其他問題,就只考這些,傻眼到爆 01/21 17:04
69F:推 acgotaku: 多一點這樣的文 幫助新鮮人 也是不錯的 01/21 17:04
70F:噓 geroge0820: 我比較想知道 哪間公司洗你的臉 01/21 18:23
71F:→ geroge0820: 你有些還是錯的.... 01/21 18:24
72F:推 wulouise: 有些看起來怪怪的 01/21 19:31
73F:推 lturtsamuel: 考這個答不出來的話那個水準... 01/21 19:35
74F:推 wulouise: struct是value type, class是reference type吧 01/21 19:48
75F:推 ohhhhhhhYi: Class是 reference type, Struct才是value type喔 01/21 19:49
76F:推 lturtsamuel: c#不熟 但是 struct 不能allocate到heap上嗎 01/21 20:47
77F:→ shomingchang: 樓上 它是啥type跟要allocate到哪無關 01/21 21:10
78F:→ x246libra: 你mvvm的vm,比較像在說mvc的c?vm應該不是回傳,而是 01/21 21:57
79F:→ x246libra: 事件通知的雙向綁定, 01/21 21:57
80F:→ OrzOGC: 我用xamarin後才懂mvvm,其它mvxx什麼的還是搞不懂 01/21 22:09
81F:→ kso60411: 面試不會考這些,但五年還解釋不了這些真的慘,送分題吧 01/21 22:55
83F:推 jinmin88: 我覺得第一次面被洗臉正常 還是要看書的 01/22 01:12
84F:→ RumiManiac: 看完這篇我就懂為啥人家要考你這些了 01/22 12:15
85F:推 gs8613789: ?????記這個要幹嘛 01/22 18:35
86F:推 citycode: 工作時把所有名詞術語都去掉是要怎麼溝通啦? 01/22 19:01
87F:推 deeeplove: 可愛 01/23 02:38
88F:推 zxc8787: 推分享 01/23 10:42
89F:推 kuochuwon: 這些名詞包括觀念都不限於C#吧 01/23 10:57
90F:推 gekkou: 工作五年了 這點程度的東西的確是不應該考 應該是都要會的 01/23 14:25
91F:→ gekkou: 的基礎知識 要問的應該是更深的 如果連這都答不出來 也 01/23 14:26
92F:→ gekkou: 很難再繼續延伸下去吧 01/23 14:26
93F:推 weiflower520: 這個在幹嘛...... 01/23 15:13
94F:推 layer0930: 我也是大概寫道第四年才有人教,算是運氣不錯。寫程式 01/23 17:15
95F:→ layer0930: 前1~3年,看過很多版本的Code,都沒辦法滿意,直到第 01/23 17:15
96F:→ layer0930: 四年,才學習怎麼寫框架。 01/23 17:15
97F:→ layer0930: 目前看到的mvc 很多人還是沒有把商業邏輯拆分,然後寫 01/23 17:15
98F:→ layer0930: 在單一controller 裡頭,寫的很攏長,應該是要區分功 01/23 17:15
99F:→ layer0930: 能跟商業邏輯來清楚的實做。model也不是單純的bind sq 01/23 17:15
100F:→ layer0930: lData or view上。在用interface 去劃分的時候 應該會 01/23 17:15
101F:→ layer0930: 發現程式架構越龐大,也能夠輕鬆拆分的好處。 01/23 17:15
102F:推 layer0930: 但是面試考這些,實價上進到公司裡頭才發現真的理解的 01/23 17:21
103F:→ layer0930: 人不多,都只是表面理解。 01/23 17:21
104F:推 u8351574: 謝謝分享~ 01/23 17:25
105F:→ eeccoo: 沒generics, attribute, extension 不合格啊 01/28 09:36
106F:→ cathychg: 喔喔喔喔喔…plc砍入屎系統 Ez啦! 02/05 20:03
107F:推 TonyStuck: 推分享 02/10 07:09
108F:推 solay: 分享推 02/23 17:43