From 02810617db1717f2f0cbfcc111da1cc68f64d83a Mon Sep 17 00:00:00 2001 From: Kister Hakusan <2753888203@qq.com> Date: Mon, 13 Apr 2026 15:40:15 +0800 Subject: [PATCH] Initial commit --- .gitignore | 8 ++ .obsidian/app.json | 3 + .obsidian/appearance.json | 1 + .obsidian/bookmarks.json | 14 ++ .obsidian/core-plugins.json | 33 +++++ .obsidian/hotkeys.json | 20 +++ .obsidian/templates.json | 3 + .obsidian/types.json | 8 ++ 图库/CSharp/Pasted image 20260412210327.png | Bin 0 -> 10284 bytes 图库/CSharp/Pasted image 20260412210704.png | Bin 0 -> 13740 bytes 图库/CSharp/Pasted image 20260412210810.png | Bin 0 -> 14934 bytes 图库/CSharp/Pasted image 20260412210946.png | Bin 0 -> 12265 bytes 待办/CSharp重学.md | 41 ++++++ 待办/Unity重学.md | 4 + 待办/大待办.md | 3 + 待办/日常.md | 3 + 待办/毕设待办.md | 3 + 快捷键.md | 3 + 未命名.canvas | 1 + 模板文件夹/CSharp笔记模板.md | 14 ++ 模板文件夹/Unity笔记模板.md | 12 ++ 欢迎.md | 5 + 笔记/CSharp/入门/三目运算符.md | 6 + 笔记/CSharp/入门/字符串拼接.md | 9 ++ 笔记/CSharp/入门/常量.md | 11 ++ 笔记/CSharp/入门/格式转换.md | 59 ++++++++ 笔记/CSharp/入门/转义字符.md | 21 +++ 笔记/CSharp/基本概念.md | 13 ++ 笔记/CSharp/基础/ref和out.md | 28 ++++ 笔记/CSharp/基础/值类型和引用类型.md | 46 +++++++ 笔记/CSharp/基础/变长参数.md | 23 ++++ 笔记/CSharp/基础/枚举.md | 34 +++++ 笔记/CSharp/基础/结构体.md | 42 ++++++ 笔记/CSharp/杂记/命名法.md | 7 + 笔记/CSharp/核心/成员变量和访问修饰符.md | 51 +++++++ 笔记/CSharp/核心/成员属性.md | 85 ++++++++++++ 笔记/CSharp/核心/构造、解析、垃圾回收.md | 145 ++++++++++++++++++++ 笔记/CSharp/核心/索引器.md | 34 +++++ 笔记/CSharp笔记汇总.md | 46 +++++++ 笔记/Unity笔记汇总.md | 10 ++ 40 files changed, 849 insertions(+) create mode 100644 .gitignore create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/bookmarks.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/templates.json create mode 100644 .obsidian/types.json create mode 100644 图库/CSharp/Pasted image 20260412210327.png create mode 100644 图库/CSharp/Pasted image 20260412210704.png create mode 100644 图库/CSharp/Pasted image 20260412210810.png create mode 100644 图库/CSharp/Pasted image 20260412210946.png create mode 100644 待办/CSharp重学.md create mode 100644 待办/Unity重学.md create mode 100644 待办/大待办.md create mode 100644 待办/日常.md create mode 100644 待办/毕设待办.md create mode 100644 快捷键.md create mode 100644 未命名.canvas create mode 100644 模板文件夹/CSharp笔记模板.md create mode 100644 模板文件夹/Unity笔记模板.md create mode 100644 欢迎.md create mode 100644 笔记/CSharp/入门/三目运算符.md create mode 100644 笔记/CSharp/入门/字符串拼接.md create mode 100644 笔记/CSharp/入门/常量.md create mode 100644 笔记/CSharp/入门/格式转换.md create mode 100644 笔记/CSharp/入门/转义字符.md create mode 100644 笔记/CSharp/基本概念.md create mode 100644 笔记/CSharp/基础/ref和out.md create mode 100644 笔记/CSharp/基础/值类型和引用类型.md create mode 100644 笔记/CSharp/基础/变长参数.md create mode 100644 笔记/CSharp/基础/枚举.md create mode 100644 笔记/CSharp/基础/结构体.md create mode 100644 笔记/CSharp/杂记/命名法.md create mode 100644 笔记/CSharp/核心/成员变量和访问修饰符.md create mode 100644 笔记/CSharp/核心/成员属性.md create mode 100644 笔记/CSharp/核心/构造、解析、垃圾回收.md create mode 100644 笔记/CSharp/核心/索引器.md create mode 100644 笔记/CSharp笔记汇总.md create mode 100644 笔记/Unity笔记汇总.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6681b58 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Obsidian local state +.obsidian/workspace.json +.obsidian/cache/ + +# OS files +.DS_Store +Thumbs.db +desktop.ini diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..6abe4c1 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,3 @@ +{ + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/bookmarks.json b/.obsidian/bookmarks.json new file mode 100644 index 0000000..9b113ab --- /dev/null +++ b/.obsidian/bookmarks.json @@ -0,0 +1,14 @@ +{ + "items": [ + { + "type": "file", + "ctime": 1775895995303, + "path": "笔记/CSharp笔记汇总.md" + }, + { + "type": "file", + "ctime": 1775896004734, + "path": "笔记/Unity笔记汇总.md" + } + ] +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..639b90d --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,33 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "footnotes": false, + "properties": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "bases": true, + "webviewer": false +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..b0a0925 --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1,20 @@ +{ + "editor:toggle-highlight": [ + { + "modifiers": [ + "Mod", + "Shift" + ], + "key": "H" + } + ], + "editor:toggle-strikethrough": [ + { + "modifiers": [ + "Mod", + "Shift" + ], + "key": "X" + } + ] +} \ No newline at end of file diff --git a/.obsidian/templates.json b/.obsidian/templates.json new file mode 100644 index 0000000..ea22a8d --- /dev/null +++ b/.obsidian/templates.json @@ -0,0 +1,3 @@ +{ + "folder": "模板文件夹" +} \ No newline at end of file diff --git a/.obsidian/types.json b/.obsidian/types.json new file mode 100644 index 0000000..f7e6513 --- /dev/null +++ b/.obsidian/types.json @@ -0,0 +1,8 @@ +{ + "types": { + "aliases": "aliases", + "cssclasses": "multitext", + "tags": "tags", + "date": "date" + } +} \ No newline at end of file diff --git a/图库/CSharp/Pasted image 20260412210327.png b/图库/CSharp/Pasted image 20260412210327.png new file mode 100644 index 0000000000000000000000000000000000000000..5a96ad8850116ba4f4800c67ea356c0fb9bfaccb GIT binary patch literal 10284 zcmcI~cUV)~yXHnXUt9A}!KF zFN%QD2~CKAg49q1LQ6=P73V(l%*_4GbEn+-gOUw<@9$gdEARKd>#>2J2K!O|qYwnK zYiX+8g&<}a1Toz`%nGj9-7_BsKbU;)YTSZKdj%K42Now4T@?r_OE|V~{|ESd#7on{ z7lJri8DC5to(19R zF;`gVy3e){vfe{+7VcSIUG8;tx^E|C{_94);^qyRzHTMYK2F``wY4=i2vUwjXdeS6 zTCxCV&Lp>hUww3%b;a_hC~H2QV0 zkg;*aOfvniTYxzXgCE|q{&;9c9SJ`A2)Q6%y?V8<_y=Sl=Kx#id&U}RJC?=$dd1lzC_7^x=me1htS}PY*rJF_RVJ-n#@> zia!VUBP_~hGV?;*Gsi_U-9lqK>SULdCIIt};A6sY!^7 zDAzFS7N?)tp?DkR4P3u zzMVKR5l0%ubxcm$S~mt??M=TaU}R(z!A2`8D)Of9@6`lt-WNn*Z{Vw|2NPl=ve+VR zuLm;GG}+o6o4*%qjjuhSdmKF)`$Au7@0{e5!F>G=GTF~Ewdf>|<@WaW^w2w_vbwtQ z?OJa*Sf`(v!=w)=QcTkhopkz`;E9Fdxw-of4rn_l#}_YNtnY93 zRVS*e-Prgn>N22uK|eiqYisLTz^XOHl;Il>4-a9wo!=Gt-hnyoEi+RGtX*q>2{TE5 zW@c+P5&uU#uixeeHsQDGWi>Ugg02(3ytpu!EjKtg2t44|(a~A7is&;R8Z%&4HB{$J zSFXynKZCi#zj$!VY%4TpkaDubX`s*SOUADd z+_u^cI<_@Y!fYBuiZ^MbPjf5@H>?f~ z2$09_b=kG|q{t6ek9T)>e`=-?n`dorS2i{Z!uCC%BB2Me|_4Rd7 zD8WQ0OAu2tAHvzzw?^$cXw;pV)roqC^`W;Q-}ExRNWU#S^f;S3XZZeL$H|dIQ$ovzaEhiG2i?t-F7q1hcqv-^poaHrXydI=WAZdPzjYw@GqhZi)r$ z3XT7+iG4A$2*niyE9<FW^XpR*6HS( zY;w!fVXiJ?AGCcjEaYH0nHKETI*!lzDo3ky><_*#DdU!IkwH=)X|UXwd%cw=lF{>g zhZfG7W`>*c{F0)tGq8t#UR^AmY>2iXAz!ZOOR?2G*z;+iZ4*Hev9*maGQ%mQ>h(!4 zudcQa>LV}zKyO$$?S{7L~{ z7lAsZeltOP06n0EBjH_1<*r*<)^2WYQFNz+VKX~aN__NgO7mU{ezCE!akuYazb|TV zt@!}!VeTBX@dYGcSPzJo{rv|ww!b=HovxTTLQEV_G0HD9R7U8D9AU!LDn zyPsFZ7h8OW!n?hVO@#{xcnLy!;ZW@oW$}Wp9Zr3etu+8-A%3y=eZTbe>tk{g6ssf6 zyKPeAotyi!c63KeGW^ebG($WmV*i)@nLz4F^~_53RD5l1ZM$9Y%lwxu2CU(nOP7U) z0z!tvXyyE!3-Tu4lGKT^ox!~CoD3cDMGFe3ixnLGMIhx%QFVg{Lm5h#I#k_O_3``n z?}OK*Uh@{&fqfw1n$xj2KvpI5#8m+w2AFjzt%+N-;_@UcMN;6e-o*VZ_?6GDNPuvKapG`Aqf}U`j9^=EZA4SojK^>E^vq#;t#B7q6}jCbp*rZ7%NSZo|G zj(=w)P`>oWUIpAeiFTo8VcDI>~$l9JUCy7p~S_TV2J2htt&;5Y!5UTgvGnGMStu zkWr1tORqV6ot%vC>FKGg8PGlkYc>A)@VU>gOtZxV_mN|ifi>kkJzA-=0BHzMzGhHW z7f_^Ay_0e~upoil6joAF(%t_aU=to8NapS z7pf!qKGg_`xg^tD0)kb>C_|bCb`htL=A$?rT_bACUDA zhU9J{5Qu*E-XPlt>ur@{lOb!3Ahma=W1^#Lu(V)C6WZADp*(B9_!r!dQYJ=H?srj2 zOVam!%e-%E>ovr>H`PTG>% z!(|D)D7T4mv#T@Z^radp_^YmDscIT}4wSfSA=~bE?%es5vHvCGcSlfauB?2yH~OZ_ zXZ2ex@a4f~4}K9W9)8i@`n1VaX0}K@1iwGURg-Np2dnZT*1voB*R(nKl}}c(_Ru(@mlO_*kAug0zbwW*aCx|}rGB%!r>CuY3M&ArqLSZZLU;F_ zOOldp?d`Ysx2u~`A)b8kLW(>97P)v^*La-;C{1R~Oq29Y?F5y1)i4dK%$kbMYnWws zuz=WRg+hZ(MrVu%{71{uEKq{#isegOh|#~+8W*xkgQixt8*SM`=#B-dLJ7A-Nbqx+yD7C3i;&BRIsTw6@-{!vtkNx;T7>O`wc@LBR zTDV#EF2jGcszlcZeujGjt6VSR)cXmv-Bh0H*Qu%94f9!#wU59SzfW+o8JLB0)GT3P zm&RA?s;fPg@TD=^`SyjxItMZjFYioyoIup+Dt<&%gjKai8$iJnQ&IK@oXpB6U<&Ww zQL`$YsietCV^gZeKznhp+TG-aK5moyRE6Pp-Lo)pT)Ii&%zFT-&R2yxIbFa~7W47t z(x+SN03xu%Y?-L3-JmSwtP^yk;&jaqhcWR5SRm3H3#mUUrtqVU6BgwoZDQlEO%nKS zA;s!ZX-mf2<*d)l`oxF5zm|`DxK@=xf9a!jTsiGd&2j;bafj}e1vx%4)gtnWex?Eo zE7F~;XyEaV`mlCt8~k0sUGUp#Z&w7(JCeycRYmIh6W0BNe!!mIs3*ug<1?> zeZ}=l>E;Xf9W^QuEN|dORres5-rq0EEyaq40*pQA4gn9 z<%fzMgINgS%|r{O`=eC0w}uL~X)(M~?TCX-gofHD9CoW{H!5^DiY)rN)0J8SF&8zaXRLJzINatAyGs#aoMT4=tfl$y1v@q zW8fK_F7_i&DKprTy8Xe-V%yFCgy*Rh&#GFz6;|W}m?RuVVLocC$`9+DtmfoMD!PWG z596?jJZ<_2n(VK-0-qG7@0nRP&t*Szy6o>eypc~hYjR4=erhEzp6WS*fzb*ah*<>< z4w@#E&|wmriR{akr`0lZUy5!`KG;y=MdtqTYSo}R@A-|#SdpNY+d<$d>tapLH3 zaq+A0dn*qm)p?EP8ZyNdwn*YG8%lDY<(xNy!=z_doJ_`|%9qR%>r_r2ff;1$(eQ`-Pv;$c`? z6On*AEvqAi$u1-h)7c&BiKij>D=^%9RP<483yBX3GHk0cCW|j-Pnp`ikAsk2qU^As zDJ}FHw&5WXzC@bl5g0j)aF>C^ra&l8I#t}mWVniz3l-gN=8r3<#;zQOS_9sOon4a& z(k|r3h}D%8Y95?wv?q%aPeSpg7Xf6+M23bo&rpN33wTaZ#&}HfamMr89PLtaQ zBgs%^llV!#>}lp0Y2tNl6Wb1BjZ-umJLZQJ0axVbH|R+x&Q8i?0r~EfcmY8nC%to- zL=lB#JD#ycF8ta{YFHDB@IVXX8kX|DDT-CXc^*>sWf$aAV3$+qsTNIlbk($;tiqq?gIV*XhlTdQ7t&L!Vg0C7N#S{X+ zSQ#^N6cJtQ$nJ36AgNf1$Vn4~7CJx@CHXxI+SEd@&4_qrEJV=`*Gc$hgx9Srs>p}F z?2+3Zea3WPDm zYmQN4Y0RBQ+w>#o>77R&kv>|_b}=>3TegE*xJXo(s^6~g>+p(h>K!T80{+-< zXD|pyyN5qI$L&@EWS=$ZA+!;#PyOrs>da_Z&fBx!b-OIser8)b9bY~MwTQ9%MP^0Y zvKeR?3yG=YXmz|4rC7a@CijfDkI86?_q{NtrOTu|OsHf?5tPz~T5#4z_3BU$`LUi6gMsH2X*v z=wTigAD=`xYXlkg&r=AJO>0q}N%UTP<^_mGiLkJCe%W)6G9l@f#|Rb`Cdj$gZ}ILOUEMYSe~U{>ay>!c0TdZA z)Lai>&dyG4qLZnanS;IkS^t0lVrR-7Wae?!n<;0`K~NC5GDF!Sl~q^sn&E8YDxCV- zhlY%Qs2nUUxiWY-kI9Bp9SOn-D=RBx(YSMP_}%bFkG#M#^oRdP&qI*L zVp_nYR?KvwnXOigf`a$7T6b@6UK@jG1i)J_MnE0;{WI+N@sDFHP$nl}yM80qL|r|- z_RT)TlqnC_`e)IEx9Xe#tV@rKj?R3m^n`1k+N=YFk`9OO#%OAXJ;8~ zE@ecuaVQ9cfbZ#vrWCBFzrUO z-bB`Ln98s)^=62iq|#ffG{v6$t%;GbFyYYsD`4W~-C3JTPz+f8v_h;V_QJWh0IBBR z7*yxM!g{nz;VW4?fVohNR5KT-e!`>?_iucd2)60z>cC8+I5>V3l z8CZqQyLr2N^)WFqujN&fvxtA`qkrZ(1&`E?6$n#3?z2L{m6es;Q&=jB!B@RbK&<=( z<4qs?F-Z`P_bg@K@9piq%E(CQI302cQ?#9GpIHQ8pt8_Cp?Sep=j_6rEx^ImgdSjt zMzMsDquHuy^78UCV@?^mF+`wlbO36I+p}T)HpNt9b90l6YaI;V>S~{4`fi-y8mOr_ zV!^`d<0xbtoTbBret~ZAy_EBK>Fa0=OCIj!d|^#GitS{+CK^8^^aNqlB@1 zV5fqu#;$p59Y0NV-H8@0CM>hF(7QMOlzsKJ^0VqsaMDhp?rO(`-9 z6drEqVPWvUqg4KOa>_4pPkqVH$0`&nE$GN10}4(--N;|JM@wzoLI`&aEfQ>Kb19yL z>@q`3B;P%Frx%R>_$>nna-9RikvD^Yt9d#iYQ#waO#NVX*%dFOn1g|KE$hVj^gtG9 zX!w65HriXl!j{AS(L0GX>QujGkBIZk%G2XPNdgNt_#jGONXOplX}LyyGJw*yL%&(&>^=>Y?D+qHJQyb_!u>?W zU>ZQ7VE5|(`oeV%%{3ry`5>M(+B}%6$DxL$Via7pxCVzt;8sl9IjTaW`D9dYpk6yuUd-ng0l= zwOfop*xj8;7@U>^s?F=28?q{W01rZ=Em!SM{Wx=j=Ol!D`@fo~$qzVH^Hn?(D)^42 zjTj+{tseg9Qt(%#|28+k-+vlZ4p#}V`fe$!9iUu2*cvtixx0{)(5@rZIP~@XpN*`M z#l6FX)=>f6AZ0NMeblS6Jbos=?KiFnZaVk4wX^P<*mIqD2+9<%16l<0w70-F{GpF< z001Ck!_gM_YA5V4Tb~G{7Z0g)0KoS2+t7zqc&~_B_$V&~^^9DB$HtU1-wNhYF$Yg6 zr5uIno`N_fK$}%IBA?`2ayNH60sio~{XG2T$>Y|pEKtj}Q!y=YXM;cggdjdMp#y^N zq;h?$nfOJVP})#Q97M)tOdWAP>TtU5RE!L)(dRr+Q^&VX^1UG=u7Ked`bm<2%Z35$ z0ZnY7IaPI{aEFvpe$>YB^D^lnff&|0vGGyQWI~beiEFf*!!v0@0-~S9X`L|A;9|6HHpFe+|Ai^gQ z8Akqi3V8ePwdyY2J}9=TI3=AXOHiXI(0n5QKN%lel9rZM8U3gQf?B@T{Y$_G7{ba% zKtPTwRRHbr*s)_}_4P#4NfyTHI=Fx`Qfk+HIwT~7fqZ^5in_WdPm^(_rR{s0^D}cj zDc<|L>wvq}L)>-yea|8gXaVjbFAiS0c{7b?-Zdg3iNQt!fKgmpipP}pGBo*ig5p}k z3!XL!T*Gr7wBPin$FI`TbYo`r_cj?tgJ<;lZ=1)yeTxMeO;d@xkB@YED18rK9v!W5 zI_R8a@B#o@Wlc?|K^xMUdIIF5_KzQLSz0UpHex=UQ%N)CZ*T7_n?7#=XPKvt%FEAp zK%=iFB_$E6k7krHI35sZ<^P-Fsp;?MR=o$MNf<*mymaYO<;`jGyZrPg0PB4H_U%sd z^TmmPDczW9fD^qz4XnIoHaX>4<1?#mUFUbvW1{Y)udnYSu}ZeAxw$!m=TJ)xQ2sSz zKI)6=8t*hU0p67NvbAOmCj(Y9Xiwc3;c>u-8|CZeww0BY4R}9901+N+1ZV#I{JaAO z)3_odNhA{2zkdkdrI2tlbQ;wg^a)GERV^fhEFQ-E`A1`+uU+WUyZpc1+$1D>(R&-S z3<+p(IyxF)*yt2_&%8F9QFTfqkVgW6&L=7|UD2l$6a6{WQ>S_l47E^;dC}&XqfZKa z?L3Du01aYkB)g8+GEO2Qf1^;6^li@r{7NX@iq4Q~`q{gI*yg>xJcch%8mV(m6WU$x z5T2QA4Dmjo(`tO@^}aP>6n(EZQZ~Az>L+j5n1G#fDCrFs6U*+!V1Q;z2V|0xZ76LE zRQ=FvC9|NDbB3$$KR9Up*Mgw2BRGEnWfJH+p$GCZm(~BQ0>|Zva;PW?O^oe6K5a0K35_DOuO)V?j9cP!2cBN+a7QL z0DAg#f8g9=$gin&N9pJRdytiTGn7^Kby3a7?P9f13_kF43hg&v(Sf9r>hZjc!0E?P2kB{PaeyhrH%=9SUB@pH zt39iA(Y<(Pn=2Y%{v;$aPPcMWzK1V=Z(VUfzjtIvMl zu)mSqe1rUI2rO-P^RI7ppBBce+@e0Jas4-V*3Jb^=oBRW+dN=3w!G}V-_^XYV>PC- zDC|ShAU%7>hN17xyBN+K21j>>+C8zGDXKe?j6n!NpF!X!7E<|TFR5+(%uQl&gOaX- zjI_06%vMvh)qvlpF&JkKy7T!GQNh8K{GNUW}{JvHB# z;VGfm`M&?TQubA!^dvG!oxtreCkId_WDJHLGknTLf%~Me>oJwrum{vBVHfl0=)mOyurh-5J268+K`?i!C=$avr*1|pX+^@6sc&=iTj*k9{A56-7-_Q(_S0R9`# z)6YZBAkQ;NV12{$%0!42TNMjL@}*HRD^n`p2r-PDtF^Yeq*JQUB^7`!kJR|GEwP49b8vbp7jAt^@Y|Kjqlje+C5k*Qeh`514-hzDPhBKi3Af OLR#v2YNfZ3|NIx}^%f5R literal 0 HcmV?d00001 diff --git a/图库/CSharp/Pasted image 20260412210704.png b/图库/CSharp/Pasted image 20260412210704.png new file mode 100644 index 0000000000000000000000000000000000000000..edfd71a3c6779f0d10c7f439a5e6f3b1688859e3 GIT binary patch literal 13740 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 F{|ifZilYDk literal 0 HcmV?d00001 diff --git a/图库/CSharp/Pasted image 20260412210810.png b/图库/CSharp/Pasted image 20260412210810.png new file mode 100644 index 0000000000000000000000000000000000000000..c52d0920e990de3471989928eea5f0bbc0a54de9 GIT binary patch literal 14934 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 QMju~&U1Oc{8-G6jANCa`Qvd(} literal 0 HcmV?d00001 diff --git a/图库/CSharp/Pasted image 20260412210946.png b/图库/CSharp/Pasted image 20260412210946.png new file mode 100644 index 0000000000000000000000000000000000000000..50a920feafb327509ee75aa072dabc97fe08c246 GIT binary patch literal 12265 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 F{{i)I3!MM} literal 0 HcmV?d00001 diff --git a/待办/CSharp重学.md b/待办/CSharp重学.md new file mode 100644 index 0000000..83a26b1 --- /dev/null +++ b/待办/CSharp重学.md @@ -0,0 +1,41 @@ +- [x] [[常量]] +- [x] [[转义字符]] +- [x] [[格式转换]] +- [x] [[字符串拼接]] +- [x] [[三目运算符]] +- [x] 枚举 +- [x] 值和引用类型 +- [x] ref和out +- [x] 变长参数 +- [x] 结构体和枚举 +- [x] 成员变量和访问修饰符 +- [ ] 垃圾回收 +- [ ] 成员属性 +- [ ] 索引器 +- [ ] 静态成员静态类和静态构造函数 +- [ ] 内部类和分布类 +- [ ] 装箱与拆箱 +- [ ] 密封类 +- [ ] 多态vob +- [ ] 抽象类和抽象函数 +- [ ] 接口 +- [ ] 密封函数 +- [ ] 命名空间 +- [ ] 抽象类的接口的区别 +- [ ] ArrayList +- [ ] Stack +- [ ] Queue +- [ ] Hashtable +- [ ] 泛型和泛型约束 +- [ ] List +- [ ] Dictionary +- [ ] LinkedList +- [ ] 泛型栈和队列 +- [ ] 委托事件 +- [ ] 匿名函数 +- [ ] lambda +- [ ] List排序 +- [ ] 协变逆变 +- [ ] 多线程 +- [ ] 预处理器 +- [ ] 反射 diff --git a/待办/Unity重学.md b/待办/Unity重学.md new file mode 100644 index 0000000..b1b7279 --- /dev/null +++ b/待办/Unity重学.md @@ -0,0 +1,4 @@ +- [ ] 入门重学 +- [ ] 基础学习 +- [ ] 核心学习 +- [ ] 进阶学习 \ No newline at end of file diff --git a/待办/大待办.md b/待办/大待办.md new file mode 100644 index 0000000..4afc201 --- /dev/null +++ b/待办/大待办.md @@ -0,0 +1,3 @@ +- [ ] 调作息 +- [ ] 学习规划 +- [ ] 毕设论文与优化规划 \ No newline at end of file diff --git a/待办/日常.md b/待办/日常.md new file mode 100644 index 0000000..7ac63c5 --- /dev/null +++ b/待办/日常.md @@ -0,0 +1,3 @@ +- [ ] PUBG任务 +- [ ] 设置闹钟 +- [ ] \ No newline at end of file diff --git a/待办/毕设待办.md b/待办/毕设待办.md new file mode 100644 index 0000000..76a7254 --- /dev/null +++ b/待办/毕设待办.md @@ -0,0 +1,3 @@ +- [ ] 优化ui +- [ ] 稳定输出 +- [ ] 扩容任务 \ No newline at end of file diff --git a/快捷键.md b/快捷键.md new file mode 100644 index 0000000..5486208 --- /dev/null +++ b/快捷键.md @@ -0,0 +1,3 @@ +**Ctrl+B** +*Ctrl+I* +==Ctrl+Shift+H== \ No newline at end of file diff --git a/未命名.canvas b/未命名.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/未命名.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/模板文件夹/CSharp笔记模板.md b/模板文件夹/CSharp笔记模板.md new file mode 100644 index 0000000..69877e6 --- /dev/null +++ b/模板文件夹/CSharp笔记模板.md @@ -0,0 +1,14 @@ +概念: + + +通常用法: + + +语法: + + +案例: + + +注意: + diff --git a/模板文件夹/Unity笔记模板.md b/模板文件夹/Unity笔记模板.md new file mode 100644 index 0000000..5747327 --- /dev/null +++ b/模板文件夹/Unity笔记模板.md @@ -0,0 +1,12 @@ +概念: + + +语法: + + +案例: + + +注意: + + diff --git a/欢迎.md b/欢迎.md new file mode 100644 index 0000000..034ec91 --- /dev/null +++ b/欢迎.md @@ -0,0 +1,5 @@ +这是你的新*仓库*。 + +写点笔记,[[创建链接]],或者试一试[导入器](https://help.obsidian.md/Plugins/Importer)插件! + +当你准备好了,就将该笔记文件删除,使这个仓库为你所用。 \ No newline at end of file diff --git a/笔记/CSharp/入门/三目运算符.md b/笔记/CSharp/入门/三目运算符.md new file mode 100644 index 0000000..41d43c9 --- /dev/null +++ b/笔记/CSharp/入门/三目运算符.md @@ -0,0 +1,6 @@ +语法: A ? B : C; +返回值类型必须一致 +EG: str = true ? "真" : "假"//str为真 + +EG: str = 1 > 2 ? "真" : "假"//假 +#入门 \ No newline at end of file diff --git a/笔记/CSharp/入门/字符串拼接.md b/笔记/CSharp/入门/字符串拼接.md new file mode 100644 index 0000000..3e11759 --- /dev/null +++ b/笔记/CSharp/入门/字符串拼接.md @@ -0,0 +1,9 @@ +拼接方式 + 1. "+" + 1. str += "1" + 4 + true; //"14true" + 2. str += 1+2+3;//"6"先运算后convert + 3. str += ""+1+2+3;"123" + 2. string.Format("待拼接的内容",内容1,内容2.....); + 1. str = string.Fomat("我是{0},我今年{1}岁","HK",18);//我是HK,今年18岁 + 3. $"{0}balabala{1}",balabala,balabala +#入门 \ No newline at end of file diff --git a/笔记/CSharp/入门/常量.md b/笔记/CSharp/入门/常量.md new file mode 100644 index 0000000..beac251 --- /dev/null +++ b/笔记/CSharp/入门/常量.md @@ -0,0 +1,11 @@ +关键字const + +const 变量类型 变量名 = 值; + +1. ==必须初始化== +2. ==不能修改 + +应用场景 + 定义PI 3.14 + 数学相关 +#入门 \ No newline at end of file diff --git a/笔记/CSharp/入门/格式转换.md b/笔记/CSharp/入门/格式转换.md new file mode 100644 index 0000000..d6e0bac --- /dev/null +++ b/笔记/CSharp/入门/格式转换.md @@ -0,0 +1,59 @@ +### **隐式转换** +##### **相同大类型** + 一般都遵守 ==大的能装小的,小的装不了大的== + + 有符号(long int short sbyte) + + 无符号(ulong uint ushort byte) + + 浮点数(decimal double float) + ==decimal没有办法隐式转换== + 其他同规则 + + 特殊类型(bool char string) + ==不存在隐式转换== + +##### 不同大类型 +==无符号不能隐式转换装有符号== + +有符号装无符号需要==注意范围== +int 不能装 uint (正方向少1) + +==浮点数可以装任意类型的整数== +==decimal可以隐式存储整型== + +==整数无法装浮点== + +##### 整理 +大范围装小范围 +高精度装低精度 +string 和 bool 不参与隐式转换 +decimal比较特殊 +char是ASCII所以可以转换成整型和浮点型 + +double > float > 所有整型 +decimal > 所有整型 +### **显示转换** +1. 括号强转 + 1. 精度和范围(丢精度和溢出) + 2. 语法:变量类型 变量名 = (变量类型)变量; + 3. EG: double double1 = (double)int1; + +2. Parse法(一般用来转换字符串到数字) + 1. ==字符串必须能够转换为对应类型== 否则报错 + 2. 语法:变量类型.Parse("字符串") + 3. EG: int int1 = int.Parse("123"); + +3. Convert法 + 1. 注意点和Parse法一样,精度比强转准一点(有四舍五入) + 2. 语法:Convert.To变量类型(变量或常量) + 3. EG:int int1 = Conver.ToInt32("123") +4. 其他类型转String + 1. 常用于拼接打印 + 2. 语法:变量.toString(); + 3. EG: string str = 1.ToString(); / 'A'.ToString(); / true.ToString(); + 4. 特殊用法string str = "123123" + 1.23 + True;(隐式调用ToString方法了) + + + +#入门 \ No newline at end of file diff --git a/笔记/CSharp/入门/转义字符.md b/笔记/CSharp/入门/转义字符.md new file mode 100644 index 0000000..58b6f13 --- /dev/null +++ b/笔记/CSharp/入门/转义字符.md @@ -0,0 +1,21 @@ +单引号\\' +string str = "\\'123\\'" + +双引号 +str = "\\"123\\"" + +换行 +str = "1\n23" + +斜杠 +str = "12\\\3" + + +以下不常用 +制表符\t + +光标退格\b + +红字符\0 + +#入门 \ No newline at end of file diff --git a/笔记/CSharp/基本概念.md b/笔记/CSharp/基本概念.md new file mode 100644 index 0000000..43e703a --- /dev/null +++ b/笔记/CSharp/基本概念.md @@ -0,0 +1,13 @@ +### 三大特性 +1. 封装 +2. 继承 +3. 多态 + +#### 七大原则 +1. 开闭原则 +2. 依赖倒转原则 +3. 里氏替换原则 +4. 单一职责原则 +5. 接口隔离原则 +6. 合成复用原则 +7. 迪米特法则 diff --git a/笔记/CSharp/基础/ref和out.md b/笔记/CSharp/基础/ref和out.md new file mode 100644 index 0000000..7a27106 --- /dev/null +++ b/笔记/CSharp/基础/ref和out.md @@ -0,0 +1,28 @@ +通常用法: + 解决值[[值类型和引用类型]]在函数内外部互相传递时的问题 + 函数内部改外部传入也改 + ==ref和out的区别:== + ref: + - 传入的参数必须初始化(赋值) + - 方法内可读可写 + out: + - 传入前**可以不初始化** + - 方法内**必须赋值**,否则编译报错 + +语法: +在函数传参时,两边都要加上修饰词 +ref: +```Csharp + static void ChangeValue(ref value) + ChangeValue(ref a); +``` + +案例: +原型在[[值类型和引用类型]]笔记中 + +注意: +==out不是用来让内外值一定不等== +==ref传入的参数必须初始化== +如果传入引用类型且内外不同,推荐new一个 + +#基础 \ No newline at end of file diff --git a/笔记/CSharp/基础/值类型和引用类型.md b/笔记/CSharp/基础/值类型和引用类型.md new file mode 100644 index 0000000..76e940a --- /dev/null +++ b/笔记/CSharp/基础/值类型和引用类型.md @@ -0,0 +1,46 @@ +概念: + ==引用类型:string、数组、类== + ==值类型:剩下都是,包括数组、enum、结构体== + + 值类型默认都是0 + bool类型是false + 引用类型默认值是null + +使用区别: + 值类型:在相互赋值时,把内容进行拷贝 //他变我不变 + 引用类型:把相互赋值时,把==地址==进行拷贝 //他变我也变 + 原因: + 值类型和引用类型 存储的内存区域不同,存取方式也不一样 + 值类型:栈空间 —— 小但是快 (0GC) + 引用类型:堆空间 —— 大但是慢 (且有GC) + +案例: + 值类型: +```Csharp + static void ChangeValue(int value) + { + value =3: + } + static void Main(string[] args) + { + int a = 1; + ChangeValue(1); + cw(a); + } + //仍然输出1 +``` + 引用类型: +```Csharp + static void ChangeValue(int[] value) + { + value =99: + } + static void Main(string[] args) + { + int[] a = {1}; + ChangeValue(a); + cw(a[0]); + } + //输出99 +``` +#基础 diff --git a/笔记/CSharp/基础/变长参数.md b/笔记/CSharp/基础/变长参数.md new file mode 100644 index 0000000..2bce29d --- /dev/null +++ b/笔记/CSharp/基础/变长参数.md @@ -0,0 +1,23 @@ +概念: +解决函数传递时需要传递多个(不确定具体个数)参数的问题 + +通常用法: + + +语法: + 关键字:params + +案例: +```Csharp + static int Sum(params int[] arr) + { + //具体方法 + return value; + } + + Sum(1,2,3,4,5,6,7); //都会存入arr里 +``` +注意: +==params关键字后面必须是数组== +==最多只能有1个变长参数 且必须放在末尾== +#基础 \ No newline at end of file diff --git a/笔记/CSharp/基础/枚举.md b/笔记/CSharp/基础/枚举.md new file mode 100644 index 0000000..f594768 --- /dev/null +++ b/笔记/CSharp/基础/枚举.md @@ -0,0 +1,34 @@ +概念:被命名的整型[[常量]]集合 +通常用法:存储玩家状态等,==和switch天生一对== + +用int表示会导致非常难直观信息,可以用枚举给数值类型加名字 + +语法: +声明地点: + 1.==namespace中(常用)== + 2.class或struct中 +声明枚举: +```Csharp + enum E_自定义枚举名 + { + 自定义枚举量, //自带一个下标0 + 自定义枚举量2, //自动累加 + 自定义枚举量3, + 自定义枚举量4 = 100 //手动设置下标 + } +``` + +声明枚举变量: + >自定义枚举类型 变量名 = 默认值; + +案例: + 实例化枚举: + E_自定义枚举名 e1 = E_自定义枚举名.自定义枚举量 + +注意: +声明==枚举==和声明==枚举变量==是两个事情 +枚举最好不要用中文 + +可以和int、string类型[[格式转换]] //非常少用 + +#基础 diff --git a/笔记/CSharp/基础/结构体.md b/笔记/CSharp/基础/结构体.md new file mode 100644 index 0000000..4ee2016 --- /dev/null +++ b/笔记/CSharp/基础/结构体.md @@ -0,0 +1,42 @@ +概念: + 自定义变量类型 类似枚举 + ==数据和函数的集合== + 是[[值类型和引用类型|引用类型]] + + +通常用法: + 解决复杂类型数据的存储 + 写namespace层级中 + +语法: + 关键字struct + 必须有变量 + 构造函数(可选) + 函数(可选) + +案例: +```Csharp + struct Student + { + int age; + bool sex; + int number; + string name; + void speak(){} + } +``` + +注意: +可以声明变量和方法、构造方法 +甚至可以声明别的结构体,但是不能用自己声明自己 +==不能在结构体内初直接给成员初始化== +==和static class相反!!!== +==`struct` 本身就是[[值类型和引用类型|值类型]]、可实例化、可复制、可栈上分配== +==`static class` 的设计目的:**只装静态成员,不能实例化**== + + +==邪修:== +`static class`:纯工具类,不能 new +`struct`:值类型,必须能 new、复制、栈分配 → 不支持 static +struct 内部不能直接给字段赋值 → 为了效率,无隐式初始化 +#基础 \ No newline at end of file diff --git a/笔记/CSharp/杂记/命名法.md b/笔记/CSharp/杂记/命名法.md new file mode 100644 index 0000000..9c694e5 --- /dev/null +++ b/笔记/CSharp/杂记/命名法.md @@ -0,0 +1,7 @@ +帕斯卡命名法:开头大写后续小写 +应用场景:函数名、[[成员属性]]名 +EG:Name + +驼峰命名法:开头小写,中间大写 +应用场景:变量名 +EG:myName \ No newline at end of file diff --git a/笔记/CSharp/核心/成员变量和访问修饰符.md b/笔记/CSharp/核心/成员变量和访问修饰符.md new file mode 100644 index 0000000..6a6be95 --- /dev/null +++ b/笔记/CSharp/核心/成员变量和访问修饰符.md @@ -0,0 +1,51 @@ +概念: +1. 声明在类中 +2. 用来描述对象特征 +3. 任意变量类型 +4. 是否赋值根据需求决定 + + +通常用法: + + +语法: +1. 声明: +```Csharp + enum E_SexType + { + male, + female + } + class Human + { + string name; + int age; + E_Sex sex; + Human[] friend; //==可以类里声明自己类的同类型 但是不能实例化!== + } +``` +2. 访问修饰符 + public——公共的 类内部和外部都可以进行访问 + private——私有的 只有内部才能访问 ==子类不行== + protected——保护的 只有自己内部和子类才可以访问 +3. 成员默认值 + 可以看[[值类型和引用类型]] + 懒得看可以cw(default(变量类型)) + +案例: +```Csharp + class Human + { + string name; + int age; + E_Sex sex; + Human[] friend; //==可以类里声明自己类的同类型 但是不能实例化!== + } + Human h1 = new Human(); + h1.age = 18; + cw(h1.age); +``` + + +注意: + diff --git a/笔记/CSharp/核心/成员属性.md b/笔记/CSharp/核心/成员属性.md new file mode 100644 index 0000000..7edfba3 --- /dev/null +++ b/笔记/CSharp/核心/成员属性.md @@ -0,0 +1,85 @@ +概念: +==和成员变量不完全是一个概念!!!!== +1. 用于保护成员变量 +2. 为成员属性的获取和复制添加逻辑处理 +3. 解决3P局限性 +自动属性 + +通常用法: + 配合private加密或规范成员属性的修改获取等 + 让其==只能获取不能修改== 或 ==只能修改不能获取== + +语法: + 属性声明: +```Csharp + 访问修饰符 属性类型 属性名 + { + get{} + set{} + } +``` + +案例: +```Csharp +class Person() +{ + private int age; + private string name; + private int money; + private bool sex; + public string Name [[命名法|帕斯卡命名法]] + { + get==必须有返回值== + { + //这里写处理获取内容的逻辑 + return name; + } + set + { + //这里写处理修改/添加内容的逻辑,不写就没有 + ==//关键字value 用于表示外部传入的值 只在set中有== + name = value; + } + } +} + +Person p = new Person(); +~~p.name = xxx~~ 因为private所以没法用.name +p.Name = xxx; +``` + +↑写了一个public的属性大家都可以访问,用该属性Name进行修改 return直接返回原始的name,set时使用.Name将xxx作为传入参数放到set的value关键字中 + +案例2: +```Csharp + public int Money() + { + get + { + return money; + } + set + { + if(value<0) value = 0; + cw(没钱); + money = value; + } + } +``` +↑最简单的防止money为负数的逻辑 + +注意: +成员属性不加访问修饰符,会使用成员变量声明时的访问权限 +==get和set也可以加访问修饰符,但是不能大于成员属性前访问修饰符的权限== +可以只有一个set或只有一个get(只能得或只能改),但是通常没人这么干 + +自动属性 +相当于声明了一个成员变量,但是好处是可以添加访问修饰符 +案例:可以得,但是不能改得一个成员↓ +```Csharp +public float Height +{ + get; + private set; +} +``` \ No newline at end of file diff --git a/笔记/CSharp/核心/构造、解析、垃圾回收.md b/笔记/CSharp/核心/构造、解析、垃圾回收.md new file mode 100644 index 0000000..49a815f --- /dev/null +++ b/笔记/CSharp/核心/构造、解析、垃圾回收.md @@ -0,0 +1,145 @@ +# 构造函数: +概念: +实例化时,用于初始化的函数 +不写默认有一个无参构造函数 +==可以重载== + +通常用法: +自定义初始化规则 + +语法: +访问修饰符 类名(){} + +案例: +```Csharp +class Person() +{ + public string name; + public int age; + public Person() + { + name = "默认值"; + age = 默认值; + } +} +``` + +this关键字: + this指当前类声明的成员变量 +```Csharp + class Person() + { + public string name; + public int age; + public Person() + { + name = "默认值"; + age = 默认值; + } + public Person(int age,string name) //重构 + { + this.name = name; + //后面的name是传递的参数,this.name是最上方public int出来的 + this.age = name; + } + } +``` + +特殊写法: + 通过this重用构造函数代码,即先调用无参构造函数,然后在调用这个特殊写法的构造函数 + 语法:访问修饰符 构造函数名(参数列表):this(【可选】参数1,参数2.....) + 例子: +```Csharp + public Person(int age, string name):this(age) + { + balabala + } +``` + 过程:先调用无参Person构造函数,然后寻找只有构造单个参数age的构造函数进行初始化 + +注意: +==函数名和类名必须相同== +==没有特殊用途,一般都是public== + +==如果写了有参构造函数且自己没有保留无参构造函数,那么类在实例化时只能使用有参构造函数且无法使用无参构造函数== + + + +---- +# 析构函数 +概念: +当引用类型堆内存被回收时,会调用该函数 +对于需要手动管理内存的语言(C++),需要在析构函数中做一些内存回收处理 +C#有自动垃圾回收机制GC +Unity中基本不用管 + +通常用法: + + +语法: +```Csharp +~类名() +{ +} +``` +案例: +```Csharp +~Person() +{ + +} +``` + +注意: + + +---- +# 垃圾回收 +垃圾回收(GC) +通过遍历堆Heap上动态分配的所有对象 +通过识别他们是否被引用来确定哪些对象时垃圾,哪些对象仍然需要引用 +垃圾:没有变量或对象引用的内容 +如果是垃圾就要被回收释放 + +一般都是==被动触发(会造成卡顿)==,所以游戏一般需要手动执行垃圾回收 +语法:GC.Collect(); +==GC会造成卡顿,所以在加载Loading时一般会调用== + +垃圾回收有多种算法 +引用计数 +标记清楚 +标记整理 +复制集合 + +注意: +GC只负责Heap内存的垃圾祸首 +引用类型都是在Heap中的,所以他需要GC来进行管理 + +栈Stack上的内存时系统自动管理的 +所以不需要GC + +C#中垃圾回收机制的大概原理 +他会把内存分为0,1,2代内存 +代的概念是垃圾回收中的一种算法需要 +新分配的对象都会被配置在第0代内存中 +每次分配都可能会进行垃圾回收(一般来说0代内存满了就会触发) +在第一次内存回收过程开始时,垃圾回收器会认为堆中全是垃圾,会进行一下两部 +1.标记对象,从根(静态参数、方法参数)开始检查引用对象,标记后为可达对象,未标记就是不可大对象 +不可达对象就会认为是垃圾 +2.搬迁对象 压缩堆 (挂起执行内存托管代码线程:把第0代内存(还不是垃圾的内存)放到一代进行搬迁)释放未标记的对象、搬迁可达对象、修改引用地址 + +大对象总被认为是二带内存,目的是减少性能损耗 +不会对大对象进行压缩搬迁 大对象是85000kb以上的 + +示意图 +step1:程序放入内存 +![[Pasted image 20260412210327.png|697]] +step2:发现沾满了 +![[Pasted image 20260412210704.png]] +step3:原来的地址搬迁,无引用的垃圾丢掉 +![[Pasted image 20260412210810.png]] +step4:D放入 +![[Pasted image 20260412210946.png]] +step5:如果0代1代后续又满了,那么这套算法会同时做用在两代内存中,以此类推 +类似多级缓存cache,L1最快但常换L3最慢 +#基础 \ No newline at end of file diff --git a/笔记/CSharp/核心/索引器.md b/笔记/CSharp/核心/索引器.md new file mode 100644 index 0000000..63a4649 --- /dev/null +++ b/笔记/CSharp/核心/索引器.md @@ -0,0 +1,34 @@ +概念: +让对象像数组一样可以通过下标访问,方便程序编写 + +通常用法: + + +语法: +```Csharp +访问修饰符 返回值 this[参数类型 参数名1,参数类型 参数名2.....] +{ + get{} ==内部写法和属性相似== + set{} +} +``` + +案例: +```Csharp +class Person +{ + private string name; + priavte int age; + private Person[] friends; + public Person this[int index] + { + get{return friends[index];} + set{friends[index] = value;} + } +} + +Person p1 = new Person(); +p[0] = new Person(); +``` +注意: + diff --git a/笔记/CSharp笔记汇总.md b/笔记/CSharp笔记汇总.md new file mode 100644 index 0000000..afdd88b --- /dev/null +++ b/笔记/CSharp笔记汇总.md @@ -0,0 +1,46 @@ +# [[基本概念|C#基本概念]] +# 入门 +1. [[常量]] +2. [[转义字符]](解决string内部符号问题) +3. [[格式转换]] +4. [[字符串拼接]] +5. [[三目运算符]] +# 基础 +1. [[枚举]] +2. [[值类型和引用类型]] +3. [[ref和out]] +4. [[变长参数]] +5. [[结构体]]和[[枚举]] +# 核心 +1. [[成员变量和访问修饰符]] +2. [[构造、解析、垃圾回收]] +3. [[成员属性]] +4. [[索引器]] +5. 静态成员静态类和静态构造函数 +6. 内部类和分布类 +7. 装箱与拆箱 +8. 密封类 +9. 多态vob +10. 抽象类和抽象函数 +11. 接口 +12. 密封函数 +13. 命名空间 +14. 抽象类的接口的区别 +# 进阶 +1. ArrayList +2. Stack +3. Queue +4. Hashtable +5. 泛型和泛型约束 +6. List +7. Dictionary +8. LinkedList +9. 泛型栈和队列 +10. 委托事件 +11. 匿名函数 +12. lambda +13. List排序 +14. 协变逆变 +15. 多线程 +16. 预处理器 +17. 反射 \ No newline at end of file diff --git a/笔记/Unity笔记汇总.md b/笔记/Unity笔记汇总.md new file mode 100644 index 0000000..edd5204 --- /dev/null +++ b/笔记/Unity笔记汇总.md @@ -0,0 +1,10 @@ +# 入门 +1. 生命周期函数 +2. Monobehavior中的重要内容 +3. Gameobject相关 +4. Time相关 +5. Transform相关 +6. Screen相关 +7. Camera代码相关 +8. 碰撞检测相关 +9. 刚体加里知识点 \ No newline at end of file