PTT評價

[心得] C#基礎名詞解釋

看板Soft_Job標題[心得] C#基礎名詞解釋作者
rz2x
(弗朗西爾我婆)
時間推噓35 推:39 噓:4 →:65

會發這篇文主要是面試被洗臉
我都會做啊
但我就不會解釋啊
雖然是寫給自己看的
但就分享出來吧
有錯請各位前輩提醒,我會修改
若有需要新增也請跟我說
謝謝

此份解釋僅為簡易版,想要詳細了解的話還是建議去看書
考試時照抄會死喔>_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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.18.123 (臺灣)
PTT 網址

shomingchang01/21 00:48類別跟結構應該是差在value type 和 reference type

rz2x01/21 00:49漏寫了,我補上,感謝

※ 編輯: rz2x (49.216.18.123 臺灣), 01/21/2022 00:51:27

shomingchang01/21 00:58我覺得參考型別和值型別與heap, stack是獨立的概念

shomingchang01/21 00:59物件裡的變數有執行別和參考型別但都是在 heap 裡

shomingchang01/21 00:59*值型別

s06yji301/21 01:03stack和heap的解釋建議你再去多了解一下

shomingchang01/21 02:16區別參考類型與值類型,應該是看變數存的是資料實

shomingchang01/21 02:16例還是參考。參考類型會有參考和資料需要儲存;值

shomingchang01/21 02:16類型則是只有資料。至於參考或資料要存放在哪裡是

shomingchang01/21 02:16實作細節,視上下文而定。

dog3011101/21 03:30認真給推 但我覺得繼承的說明改成實作多型會不會比較好

vi00024601/21 08:59該去翻翻clr via c#了 面試真辛苦 囧

MoonCode01/21 09:16罰寫課文喔?

pttano01/21 09:21啥小,這還要特地記

lwecloud01/21 09:41謝謝讓我回想起大學程設課筆試部分

t6414101/21 10:12property 是 field + getter + setter, 然後 get/set 是

t6414101/21 10:12method 不是變數

t6414101/21 10:15存取修飾子還有 private protected 和 protected intern

t6414101/21 10:15al

MyNion01/21 10:21好青春的感覺ㄛ

BigCockman01/21 10:35全都常識有什麼好記的 面試也不是要考你這些 而是能

BigCockman01/21 10:35不能舉例用過這些的例子 好壞處是什麼

royyy01/21 10:49只有少數幾個名詞比較少講,其他幾乎都是常識阿!

qwer33885901/21 10:52這些有要背嗎 不是常識?

bill020501/21 10:57這些本來就不是給老手看的啊 給新手看還可以吧

hisashi01/21 11:24面試就會考這些 會背的也不一定會co...XD

saphy01/21 11:27分享給推

xx82011001/21 11:39分享給推 不過面試如果單純考名詞解釋真的感覺蠻無聊的.

xx82011001/21 11:39..還不如考像是String == 的結果之類的還比較好QQ

sniper282401/21 11:47....嗯

x246libra01/21 12:05對程式設計師,這真的是基本,不能說你工作久了就忘了

x246libra01/21 12:05...

Lhmstu01/21 12:07其實在不同地方,每個人認知會有稍微差別

Lhmstu01/21 12:08這些只有在你實際使用過內心就會有一個概廓的形狀

Lhmstu01/21 12:08這些比起背誦中文要來的能夠說服人

enthos01/21 12:14Open book:從dnSpy的RVA計算出對應的file offset#Game Mod

ChungLi556601/21 12:28這些在面試答不出來挺誇張的 代表平常都在亂兜程式碼

ChungLi556601/21 12:28會動就好

holebro01/21 12:29這個真的超基本 講不出來太扯

a74012501/21 12:32如果只是要你大概描述概念呢 你是真的說不出來嗎

ap95421201/21 12:41是本科都講得出來

v7q401/21 13:59被考過argument和parameter的差別...

foreverk01/21 14:05還有process vs thread也是常見考題

devilkool01/21 14:22我反而很好奇你所謂不會解釋,是回答了什麼?

devilkool01/21 14:24難道直接說「窩不知道」嗎,連回想自己寫過的東西加以

devilkool01/21 14:24舉例都沒有?

vi00024601/21 14:33老實說考這個滿無聊的 像是在質疑你會不會寫程式一樣

vi00024601/21 14:33而且這東西可以問很細 細到底層怎麼編譯的都能問

vi00024601/21 14:35與其面試問這個 不如先發張線上考券 限時寫完

vi00024601/21 14:36要我到現場回答這些問題 我會覺得很浪費時間

Wolfclaw01/21 14:36這些答不出來基本功不太行

jerry03089701/21 14:56看起來是新手吧. 不會也沒差反正前輩code都寫好

jerry03089701/21 14:56改一改很簡單.阿如果你是前輩.工作久了自然就熟了

jerry03089701/21 14:57新手急著上工可以去面試不問這些的公司. 公司多的是

u954152601/21 15:15印出來帶著,下次面試官問叫他自己看XD

baobomb01/21 15:25MVC, MVP, MVVM 你講的出來每個元件的用處是什麼 但是我

baobomb01/21 15:25猜面試官想問的是 究竟這三個pattern的實際上的區別到底

baobomb01/21 15:25在哪 分別解決了什麼問題 怎麼解決的 我也很常面試別人

baobomb01/21 15:25時 問面試者一樣的問題 90%都跟你一樣 答的出來每個元件

baobomb01/21 15:26在幹嘛 但答不出來到底每種pattern的區別在哪 最後就是

baobomb01/21 15:26直接給他個no hire

brucetu01/21 16:07你的stack跟heap答案看起來像是要面試寫compiler的公司

brucetu01/21 16:07通常應該是指DS的stack跟heap吧 建議少抄課文

brucetu01/21 16:07baobomb大說的回答方式才是對的

eric0016901/21 16:45對老手或許是常識 但也可以留給新鮮人啊

acgotaku01/21 17:02這應該EECS常識 但是還是推熱心 給非本科系的快速導覽

rz2x01/21 17:04我也覺得考這些很無聊啊,這週面試6間,就有1間考這種東西,

rz2x01/21 17:04不問其他問題,就只考這些,傻眼到爆

acgotaku01/21 17:04多一點這樣的文 幫助新鮮人 也是不錯的

geroge082001/21 18:23我比較想知道 哪間公司洗你的臉

geroge082001/21 18:24你有些還是錯的....

wulouise01/21 19:31有些看起來怪怪的

lturtsamuel01/21 19:35考這個答不出來的話那個水準...

wulouise01/21 19:48struct是value type, class是reference type吧

ohhhhhhhYi01/21 19:49Class是 reference type, Struct才是value type喔

lturtsamuel01/21 20:47c#不熟 但是 struct 不能allocate到heap上嗎

shomingchang01/21 21:10樓上 它是啥type跟要allocate到哪無關

x246libra01/21 21:57你mvvm的vm,比較像在說mvc的c?vm應該不是回傳,而是

x246libra01/21 21:57事件通知的雙向綁定,

OrzOGC01/21 22:09我用xamarin後才懂mvvm,其它mvxx什麼的還是搞不懂

kso6041101/21 22:55面試不會考這些,但五年還解釋不了這些真的慘,送分題吧

wulouise01/21 22:57allocate在對C#來說不很重要 https://bit.ly/3fL6hwN

jinmin8801/22 01:12我覺得第一次面被洗臉正常 還是要看書的

RumiManiac01/22 12:15看完這篇我就懂為啥人家要考你這些了

gs861378901/22 18:35?????記這個要幹嘛

citycode01/22 19:01工作時把所有名詞術語都去掉是要怎麼溝通啦?

deeeplove01/23 02:38可愛

zxc878701/23 10:42推分享

kuochuwon01/23 10:57這些名詞包括觀念都不限於C#吧

gekkou01/23 14:25工作五年了 這點程度的東西的確是不應該考 應該是都要會的

gekkou01/23 14:26的基礎知識 要問的應該是更深的 如果連這都答不出來 也

gekkou01/23 14:26很難再繼續延伸下去吧

weiflower52001/23 15:13這個在幹嘛......

layer093001/23 17:15我也是大概寫道第四年才有人教,算是運氣不錯。寫程式

layer093001/23 17:15前1~3年,看過很多版本的Code,都沒辦法滿意,直到第

layer093001/23 17:15四年,才學習怎麼寫框架。

layer093001/23 17:15目前看到的mvc 很多人還是沒有把商業邏輯拆分,然後寫

layer093001/23 17:15在單一controller 裡頭,寫的很攏長,應該是要區分功

layer093001/23 17:15能跟商業邏輯來清楚的實做。model也不是單純的bind sq

layer093001/23 17:15lData or view上。在用interface 去劃分的時候 應該會

layer093001/23 17:15發現程式架構越龐大,也能夠輕鬆拆分的好處。

layer093001/23 17:21但是面試考這些,實價上進到公司裡頭才發現真的理解的

layer093001/23 17:21人不多,都只是表面理解。

u835157401/23 17:25謝謝分享~

eeccoo01/28 09:36沒generics, attribute, extension 不合格啊

cathychg02/05 20:03喔喔喔喔喔…plc砍入屎系統 Ez啦!

TonyStuck02/10 07:09推分享

solay02/23 17:43分享推