From 912359a5c3f61c5fe5952c76279a34384ef3984f Mon Sep 17 00:00:00 2001 From: ffengc Date: Mon, 12 Aug 2024 21:05:30 +0800 Subject: [PATCH] feat sortMethods part, done, performance test done --- .../rookie-csharp.metadata.v8.bin | Bin 1084 -> 1084 bytes .../rookie-csharp.projects.v8.bin | Bin 290410 -> 316911 bytes .../rookie-csharp.strings.v8.bin | Bin 118693 -> 118762 bytes .../DesignTimeBuild/.dtbcache.v2 | Bin 83892 -> 83916 bytes ...21a41f5e-edce-44a3-8093-387a5bb68948.vsidx | Bin 0 -> 76526 bytes ...33e8e4f9-740a-4b36-a316-40001f4571e6.vsidx | Bin 0 -> 28814 bytes ...42f685b9-2587-47f5-9f3d-7e93382933de.vsidx | Bin 14583 -> 0 bytes ...4b375f32-f2ec-434f-8119-d7826d16341b.vsidx | Bin 34647 -> 0 bytes ...5a41a991-1e3b-41fb-957b-9c730d6afa64.vsidx | Bin 0 -> 35011 bytes ...5a5f71ce-a07b-42e1-a922-4b81860ce3b0.vsidx | Bin 0 -> 34755 bytes ...cd9626ec-e6ab-4871-be68-7de5f7262874.vsidx | Bin 35351 -> 0 bytes ...e0125018-26bd-44fa-8e2b-63c5caf623f0.vsidx | Bin 73007 -> 0 bytes ...cb60cd3-3771-42e9-b2af-648fdd113003.vsidx} | Bin 22880 -> 23014 bytes .vs/rookie-csharp/v17/.futdcache.v2 | Bin 245 -> 245 bytes .vs/rookie-csharp/v17/.suo | Bin 46592 -> 45568 bytes .vs/rookie-csharp/v17/DocumentLayout.json | 23 +- README.md | 65 +-- assets/._17.png | Bin 0 -> 4096 bytes assets/17.png | Bin 0 -> 38881 bytes bin/Debug/net8.0/rookie-csharp.deps.json | 23 + bin/Debug/net8.0/rookie-csharp.dll | Bin 0 -> 27648 bytes bin/Debug/net8.0/rookie-csharp.exe | Bin 0 -> 135168 bytes bin/Debug/net8.0/rookie-csharp.pdb | Bin 0 -> 22280 bytes .../net8.0/rookie-csharp.runtimeconfig.json | 12 + index.html | 507 ++++++++++-------- main.cs | 3 +- obj/Debug/net8.0/apphost.exe | Bin 135168 -> 135168 bytes obj/Debug/net8.0/ref/rookie-csharp.dll | Bin 0 -> 10752 bytes obj/Debug/net8.0/refint/rookie-csharp.dll | Bin 0 -> 10752 bytes .../net8.0/rookie-csharp.AssemblyInfo.cs | 2 +- .../rookie-csharp.AssemblyInfoInputs.cache | 2 +- ...okie-csharp.csproj.CoreCompileInputs.cache | 1 + .../rookie-csharp.csproj.FileListAbsolute.txt | 15 + obj/Debug/net8.0/rookie-csharp.dll | Bin 0 -> 27648 bytes .../rookie-csharp.genruntimeconfig.cache | 1 + obj/Debug/net8.0/rookie-csharp.pdb | Bin 0 -> 22280 bytes .../net8.0/rookie-csharp.sourcelink.json | 1 + src/SortMethods.cs | 374 +++++++++++++ 38 files changed, 747 insertions(+), 282 deletions(-) create mode 100644 .vs/rookie-csharp/FileContentIndex/21a41f5e-edce-44a3-8093-387a5bb68948.vsidx create mode 100644 .vs/rookie-csharp/FileContentIndex/33e8e4f9-740a-4b36-a316-40001f4571e6.vsidx delete mode 100644 .vs/rookie-csharp/FileContentIndex/42f685b9-2587-47f5-9f3d-7e93382933de.vsidx delete mode 100644 .vs/rookie-csharp/FileContentIndex/4b375f32-f2ec-434f-8119-d7826d16341b.vsidx create mode 100644 .vs/rookie-csharp/FileContentIndex/5a41a991-1e3b-41fb-957b-9c730d6afa64.vsidx create mode 100644 .vs/rookie-csharp/FileContentIndex/5a5f71ce-a07b-42e1-a922-4b81860ce3b0.vsidx delete mode 100644 .vs/rookie-csharp/FileContentIndex/cd9626ec-e6ab-4871-be68-7de5f7262874.vsidx delete mode 100644 .vs/rookie-csharp/FileContentIndex/e0125018-26bd-44fa-8e2b-63c5caf623f0.vsidx rename .vs/rookie-csharp/FileContentIndex/{50bf0c13-9919-49ae-9137-ef2ec2c57912.vsidx => ecb60cd3-3771-42e9-b2af-648fdd113003.vsidx} (75%) create mode 100644 assets/._17.png create mode 100644 assets/17.png create mode 100644 bin/Debug/net8.0/rookie-csharp.deps.json create mode 100644 bin/Debug/net8.0/rookie-csharp.dll create mode 100644 bin/Debug/net8.0/rookie-csharp.exe create mode 100644 bin/Debug/net8.0/rookie-csharp.pdb create mode 100644 bin/Debug/net8.0/rookie-csharp.runtimeconfig.json create mode 100644 obj/Debug/net8.0/ref/rookie-csharp.dll create mode 100644 obj/Debug/net8.0/refint/rookie-csharp.dll create mode 100644 obj/Debug/net8.0/rookie-csharp.csproj.CoreCompileInputs.cache create mode 100644 obj/Debug/net8.0/rookie-csharp.dll create mode 100644 obj/Debug/net8.0/rookie-csharp.genruntimeconfig.cache create mode 100644 obj/Debug/net8.0/rookie-csharp.pdb create mode 100644 obj/Debug/net8.0/rookie-csharp.sourcelink.json create mode 100644 src/SortMethods.cs diff --git a/.vs/ProjectEvaluation/rookie-csharp.metadata.v8.bin b/.vs/ProjectEvaluation/rookie-csharp.metadata.v8.bin index 08b86b791caccf3205f4433e045ac3524b45a310..9f31521fb0043e46810c8d9e38046c0fe514c7f7 100644 GIT binary patch delta 30 icmdnPv4>;BT4tfFJQfBJkO1N>Wwx>BcTL{UTnhk#3<(YZ delta 30 icmdnPv4>;BT4o_mb`}N@U<2ZZ*K9*=cTC>TTnhkky9gx! diff --git a/.vs/ProjectEvaluation/rookie-csharp.projects.v8.bin b/.vs/ProjectEvaluation/rookie-csharp.projects.v8.bin index e61e7f897a9ca581f5a32294d461866cb508d026..c356ff6e41041675008efd223d81d56985b8ac07 100644 GIT binary patch delta 126 zcmaELNAUe>;f5B*7N!>FEi74ilN-`lRV5f07!e~YsGnauY8|DW?n Z>u9GB>`jWI7k2h delta 17 YcmaFATKLr+!G;#b7N!>FEi74i07|6?CjbBd diff --git a/.vs/ProjectEvaluation/rookie-csharp.strings.v8.bin b/.vs/ProjectEvaluation/rookie-csharp.strings.v8.bin index 2fdb4d276a95c0e2115d0ee5418fa178eb47b4b6..9763b7ce031dae922f40bcdcabb725a86683a2cb 100644 GIT binary patch delta 85 zcmZ2FpZ(Q*cE(GMj9VEQmz;MMcD9NM&&*57FE5TMt}HG|%{4X>DlSTn3C=Gn@l7qs f$WJNOOD^V5EG|whDUQ*LH#FBP$V=yi@*z9`Yl6E_xapAZ|9mZ_de&Gd3H|GcjgogedmR~9b1hUk<+?W zc8gY7nVG}0vRk#z9-f`mB0Dp4SgVYdEpjrma+-~3*(N8eRc2;RPMhpuZQ6{;pvi2J zk=bTMX6Dd&bE~GujF!(V?=Y}x`3YBM5AHwq%87k)CXO6Cd_t4#32Dv74jXmH{h`LH z;)6ciTyc^}^QmLeom8Fw63xMm*cYjSqjSrhTd!KXoe4O?Wir z(TqoP9*q}H=ig4+Gwbu{z~git9eH%(aR!ghJR<*k7oN}L!9QtTd87M*_q*}Fox2x) zzAeu-o{hmjX*~+>_vHB)-tWb;{R?~Zpsk$Nhhf+TIg4le7{9P{{g4~Bys*7~7#ow0 zd4K1Ie;&*`&?S{uDwWFnC-2`>-oe!2kGul~nRloFAT1z-qsgHHf*1--dO(q*4L?_i ziV7VQP%I=zjfA37#ifo7DB*@GE>u#eR6uEmN(z+`Ixe8BLuL5<`5!1JRX(7CQ{^;N zMWIRol^v=mR7I$2KsAS|2vrwKjt{8eRCTGEQYQq|a;TNr$esIJgS0rieV z{Q6N>s=n080S%5+MD>Ll3Y`+r$f1TpjfGAPXyQ;~p{7KM{m`LVKy#;>N@ZxM76C0C z$`HyFY8BAhp-iDHp*8_+3sK?!e+pSr?W9f%Xzzwm=o|R`KjO8HK2m2(ofFW{4Ry9q zf1z^&&U2{0&;X(H0|q)YfX`p>@*5;|LBNGh4bo79g)Ryh;?Q8Bi-j%;80yf)Lc@fz zlYrq)4U@`|8WC`*Lpeetg)R#i<(L$F8TyYdiQWz~YMrv%pxT91GV}!;FT^TUJ zq47c!g{}&?+M$U;lME&H^1CMBTBjySP1aD?1zhjYWT7cS{|iVQnj$n+=!Sr4LVEw5 zDm7i|#(Tw@KX|Fx#oyq~-|C4VdT99HCsH zI|AlAlqR20Z4_BSOoC9uEngaB8{K3aKXpo^oh~(9=TC1gv!E zX`xj@&jvhqG)k~a>UpUb0$w~?;d!B#gkBCfbSjp){s3vevtYx;3ubk&`>`M{Sxr2Lq7}c z70L^MLwkkx38naM{hL$!q<)wBBj8Vmeizy=^jE;&4(%5@AoNebzYZk_qz+0Q3P_7b zFAEL|g;==4h!N=yg_!@}m_iYuq7lb9R79v)0pj(yc*LPa<_Y8Y{f8>)d&Bca9- zr#jR~sEJV1h-MBo$wz#CG?&VVXyH_I4b@U8GoqD4ErnVOWks}csI^dAp>`3cB~G=K zYA@9x;&g}F3w0Fg6mf<_9fdjzb%{9Bq0W5%{10@M>K4)6sjfmjgnCBwa;S$;Z=pUB zXF1ecsBa-kaCXEwPW6@Qr=j{soa<0Oq4R_WM4a!?c|rq)21Q(O1j>K^9Vm67)ZmDV zj!^dUyHIF|(8Up#I5b3PsL-&8Y=?#l4Ub*8|6w!moQM%l4VSu9Lye5M%%Mw#MhT6M zxZI&pLRScli5Ode4!{0zh158y@exUMn>@ z;yS0U)lk<9O^NuQL)Qx>LQ^AdaOm(4`ZS^G5jRG+|1?cQ-6VB$#4T>9n}lWv&5XF! zp&3H6gl>zt-Jw~0{(_g^Y^gaBbDf&4q2>wYM%>}hJfZnQ3nK1xXui-wp=43ST}~~O zx?5^-#61q(Ep)HYl8E~px>sna(ESk)9Et4xcd68aQV&Hue54|JP-vOZBN2}}v`pwR zq2&>eJM@^)6GR33Pb(sxbm|GIr!>^l5zjdEl+a3{RT0lRv{L9fq30uBC`5Yw;W?=n zrCy47*$wrg&}yMI5wAG3T4=4%s}Zj`w6+i>cwK5;#2Ze%uA$ZoZHRc&q4h!=h2DyI z+o6p@n}jw;yc6C2(OTp>ag45oZn9qydfQWtMi;;@m@ms|2JpB>z zCr|q${^IHHhyy(R6Y(!k2O|#gl$MT=-W@R=={yxlM^T=RNk=iBil^h)^xUurCDMDO zc$0S=N?Mh)DrHqFec@f5LW6`^E+A(I>Iu-Yd?w z;QlK5TW}8*11z{tia{3K3dLXxZg=8h3vOv*n8h$gjztb*q{T?aXp7N|F&1MO<1NNB zCR$8nObQ8W5^J(OG?_8QVhUrb1^4DK-GcjXxY>exY?x`meKg!=!L2gPvEX(XaxJ*! zg#{Me)xshR?p$H91$U>g#DY6e+&}71RE^4CBh9426sKMnUU}|h4<_s zZeQR73vN+hn+10vu)~5o4cKMD-2{AU!3_g^VZluSd}YCfKfbl#;-1TT2G{TS*@A0y z?6u%J9Q!P|)W+`?3D?uuZ^bn;4p?wmjDr?j`XWR|h_WWhBRnpkk%#1#{R zOCz+j;PMBpEx5!%TMMpY(B6V86?C-VY6P7vIy1Uja8ZFC7Ckr#LT@Xs4$#+v3jp-9 z;3OaCS#Tncffk&rb1Kf@d>lh8IOoPti=m9+7MwccQVULxG0K8dU`}uuoaJJi1!uCD zV8PjHf~&1KCFNw4!C5D+x8TeYiG_WKrde=;h?^`p3B(KwPV_L#Visez1?Ov+XTdoc z=38*yg@qQJTH$UBPM>hE1*b?zmRfNd#90o5Qyna`;B*F$S#ZjNCoDKC!BZBTd0?dl zXBV71FgSt0ix!+DV6_D&0$6Loi#;#%3|`N%-h$U`Y_#BY8JqIIL|%LGu06!-E4Enh z8j7tJyiQ`f1uuozX~D}Kc3be0hR-c{)xsVNUYSsVZ{%}PG5@ww{%z&_+bX=Z%T2Eo UZ%~zQ`PJ-NP^`LrcIwps1HNX`jQ{`u delta 8162 zcmZA637n19AII@I=UTFhh-^_xgqa32BU`pCMT#h?>`|hW68|2F_Qh7(6>U{6zG<0nSDVoP`@1t=&HU!&xzFd`c{?|9pXZ!2>uxT)>gKYc-`vo@OKyJ7$o#zA zF}Znd3P$7?>d-Gh5&-?IfZ{3%N*%MM(H8R)+ zIgu~e*Mx;bjtKL@`e$|?5hliDUf8pwaCi4~VdZqX@Snmx>B7C~{a=NODkD@jpj-we``-&?q{>Sj5KzGlRbHr~P^Ey%4pkJYB2+b? znnP7Gi0_Z;QU?aqaH_h7sws3(KrM%A3e^@mIG~P0wT0>m9THG4ajLFVeW?Zk4IQd4 z)JW*ifW{6r5^5rJSis>9HR1bbzR*rjqR8=K3{unGYVi2lQ~Nn^aE?b$mcChk6S27U~nw*P-4*CkUMw(60#X z|NP+uss2(Y1q^UQ^%pu>=#+qg4xKDCNa)mn!43^7LP;7!q)rPs-KilOYN*f|0mB>` zDs-mMSpjD|bf(a7p%DQi1ONU@T<Qpg4Fo|6P=o%p(Y7k5OASGlY}Mv`&~%|hXhy&lC6Qf!_g{l%N?jQ+tE3{Dsi9^IT@`S(L$igh5xO?uI)|fI~}!9u#^g;9-Xz6k00uNWikd zzyFdSzok--N<9{^+zs`p&g=ry4?h29EyyA?PhCbdKA^MEg;iZ9YTguWE|D&T8}z7+aK=-Ytr9QsBm z`CjUWfFGUuUTUY%PXRwWv{UF8pL{*0>3sn=U9&uo4l%Sea4XK(D2bET+AyiAKcErIB z)e@>BR5#)fhw2E`%OL*!qkcpKr|L;H)KHBg4t1!ZP-CGc5r;X{SmYD89cnJrQm9o#Ylm72WhYWO5yv={EtM)sU8}tmr(DBJ`VK~>ML|Y#EA~|73wF{KO#BFseV!eq)v`F#i0R01BC`foa)d( zp}|5!B2IHC87y_W)X<1CoH|`-n9!LKXE`)X=xm|k5hENrTWDkv;{A72#Av5RN{!J_ zV!xd7q zq-IB4<%XIibhXem5!X6&wa|4!*GJso&~+Ka_s5M=H$~j+)QuWyj?mnQc@E7HnlH2< z;ueSI3*9QTFygkvsavIPm%1b3PKRz6x=ZNphK zwOHr@p$8)#a_9k}hlQ3#JmS#9Ld%L#f=44Bb84B?at*a2;&F$T3#}A-BH~GhRtl{W zdMe`S5-4;1T_yF5)Uy%Kl~8t(enx1u(3*(n9a=5)g3yZ*FFEvr(92Q#Pp?G0>eS0p zYcbyDv|yzhouC$wJZgNP3uS}(Lg zXk)}j4s9qxy#9VHwJG8gr#{wDn}xPSeCp6I9hJpCQ9o2P#w_VBbfVjoZcMr5UWA*2v_N~KVS zr?M%O-3{J*4?#0Y(`{d5iLliWU_aRV=D7s#{cN)U>F{sBKZ3QP-j_qrOFbMk9+xj3yRM z7)evBrmSWb%@{2#S}sEG@X(84@wv_?G{g}W`d`NVA}2KSe+B=q5jkef(& z&|cz35tdqTF9?rXaK8sDEV!qGCoH&cgQqOGHG^j@xc!1P7TjXNix%8P!7CQrDZy(N z+zsJg2ZI|P+|OWeQv>fY5R52yhk6$E7!55NG8$Vn=1mxfTX7kN zBQ3bpLURi)r_j=ZOD1Gna8-m{3$A?7&Vs8Ou3Z>hz@UQ#7b)m$(V5ZJf{P62ij4>9R z8DpFUXTO}=GC0A-L<>%0aiIk#s<_yKlhFj1T5-aOX%?JR;&Ka4962pyaBhfM7M%a# zY75TsaGeF`ah$<1I90hiS%n5f{aCU@67K<3kVk^#a@PGwp zGI-d6vlT3};DiLrEja1GN()Xbu*!mS2TlzboF8Dd1?K>G!GiaByllZ+Io4Y6c8xbI zcuVFDm%+O()@A;zytQJzy~NumHdyc$$(tjCcR_5n;GGUzEqFJ>b_?FH@P!3$N~pmr n{v6cIJRX#Jtd)7J&BwX;HTF&O0SEKKU&n3(b?uuoX3Y3MRJp@Q diff --git a/.vs/rookie-csharp/FileContentIndex/21a41f5e-edce-44a3-8093-387a5bb68948.vsidx b/.vs/rookie-csharp/FileContentIndex/21a41f5e-edce-44a3-8093-387a5bb68948.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..281d29379055b22cd4c2aa3ec033ccb40f1ba4f6 GIT binary patch literal 76526 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 literal 0 HcmV?d00001 diff --git a/.vs/rookie-csharp/FileContentIndex/33e8e4f9-740a-4b36-a316-40001f4571e6.vsidx b/.vs/rookie-csharp/FileContentIndex/33e8e4f9-740a-4b36-a316-40001f4571e6.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..e1937bdc052c2b33e4074dc5e06aa4ced12fab97 GIT binary patch literal 28814 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 Zq9A-*jQ^`F|M6EB{CD}#jD6;3{D0W-argiL diff --git a/.vs/rookie-csharp/FileContentIndex/5a41a991-1e3b-41fb-957b-9c730d6afa64.vsidx b/.vs/rookie-csharp/FileContentIndex/5a41a991-1e3b-41fb-957b-9c730d6afa64.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..888c1449103fbf2e5253b99fd742509868b369c0 GIT binary patch literal 35011 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

    G{}^FW1_M46FsE=+#IM&=SZF(ZMpm(AF^{J4&l5 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 MyJckN1xqsjKO%g6zW@LL literal 0 HcmV?d00001 diff --git a/.vs/rookie-csharp/FileContentIndex/cd9626ec-e6ab-4871-be68-7de5f7262874.vsidx b/.vs/rookie-csharp/FileContentIndex/cd9626ec-e6ab-4871-be68-7de5f7262874.vsidx deleted file mode 100644 index 68d6468a50ee33d6b490e8cce5b6837c2f5bac67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35351 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 diff --git a/.vs/rookie-csharp/FileContentIndex/e0125018-26bd-44fa-8e2b-63c5caf623f0.vsidx b/.vs/rookie-csharp/FileContentIndex/e0125018-26bd-44fa-8e2b-63c5caf623f0.vsidx deleted file mode 100644 index efa3c5e816c056a11b15bff4cdee7a5b75ccb88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73007 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 BQAq#* diff --git a/.vs/rookie-csharp/v17/.futdcache.v2 b/.vs/rookie-csharp/v17/.futdcache.v2 index 030d3af2fbc607857d3f2e03124276205a7bd30c..8aa99b4d320c06f854e05871cd9ef8c735e83b41 100644 GIT binary patch delta 27 icmey$_?2kda-_tqolfHVNdBM!U( delta 27 lcmV+$0ObGm0rdfp;S_|Ofju_jt**GY+z7N)BjY@{+z7>F4gLTC diff --git a/.vs/rookie-csharp/v17/.suo b/.vs/rookie-csharp/v17/.suo index 7d844497660dff61f907fde978bc7a8bc1602884..08a6c907579a2cbf4b9d6f0f0cc34e50a05c706f 100644 GIT binary patch literal 45568 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 H`~M#Rfx9Y1 literal 0 HcmV?d00001 diff --git a/assets/17.png b/assets/17.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea3d56063bdf76d46d10710bdbcbea96cfdbf33 GIT binary patch literal 38881 zcmb??WmFtpmo-k~mXId61W0fQ?h-sm4ENw3+}%QB!GlY1cL*+xySux)!&l5RGwV&} z`T4EYunM}WtLvV7&)IvQeS;L_Brs54qQbzyU`R=deSm>Mzy*#^K}f)FUM%(#7#MVU zV^L8BDN#`}g>RMy#%B63Fp@#hO32C|yYZ9NK9D1T#Dt``-eX7L3Q2<)&O*uFkfUHr zLr{b}LK%yeRB>?V>FQ9^r(kgick<|hbsZRj5&fd=tTpy}60n70-PT=B-E20S9uu!O z6KxC+8sK3XBAKE$(tpCNNuB7IwmcMccfY3pz)1$ro{B~U6TuWN!#zB_3=^|_akzf| z-jjCL6jQp;L>RJR>}<4kZ@xe*c+YB3W|=EY;D@e+!JgPR)&%W5tXpL5 z?9z$3tqjtMMXgFm<|}%&*n+U01p}MCtgu5{K79E?;V5=n%&JRNINx7k-wN+V#&U{+ zjwu4oQ!x@Fi^dGIJ$^-AbM~L%ycZC(LCDu7pkIS2RsY$Wa_W(_>JeM7-f=`UQIcoa zEutIE(pJyk9gmaMzJuKqohczMTz~=dJ=o9ZLb|W-gD+Lio+6=FBAN|S9Jc(AP3W=z zl`^>?8M>}$ARAR}#Ih*IJAxImUl@I)s^kNk9ij!u)*+H4V9u{L(j1ibjtdC{tc-?% zha0^}ZVEddU)HFsKHbFG#{_a_hH>K?bkGRP`f;TSC4x~(k=i3p5^GAx6UJKUE!Ijx zWO4E#9dNqwlDK=tBb_~LUxiCWFMgk{wUz2+m$lb-k-M@B(g}z~)9nR$3T_EP5O?vU zxKP@7D6ZFzmX&?eJ%v8+aj8&A1%5oPNq)O1_=O$6I&woCYkKt|eNOw8C6aZ0J(-20 znXrI*;v2Vm<)5U)#V2^heH#Jd`FAasK32_$u%3v|O0s+i$Or>xT?k#4lk#XlM_%Y( z;c({C-WWKFjcA73!dRF#A9#h!u^apOk@@8aa4aN>?2?+;LgJ6etm z36m+~n$R3tn|nL=PmNh&YYDs~Y|icnO4Bb|Im{|vT`<^#c*ByQjJgcUl-fEprPKu& zyhZJlbO+r_-wBf$?1xf_a@d^vU7gB$WP6f!5}gwT@@`Jvm7hi@MDU98NKg;-^%z<& zy%23*kwOSvRUVKVV1%J<63m;N&5vt2L~S*@ZDqKA4s#d@4-enjXq83-%e925g(A^p z#bI`3tO&oJQjwFu%g135+4bd74xPIck05;e5MloiDEWfbq(g*Gwu*|F`jVV zF40WnYdohg-5j1gpOqDj2h$BU4p2L@+I`M-nlZH>%e4*T)_*M06c4?fmY%rRLmAU zD_8+MEzja+y5pDiu!6x_ZKNx1SB7vQ+L9$Sj<}A#-M+G|^dc;2i6xO%zE+qAzZhFh zDI&V4RPpAQHD##{@HTOkusQKAapZA$1H*#usc@xIzRI6azl*rabp60$Olgd@O||_d zH~1{3K%9e|H`1r;^;eYIKy|r=_X5I=((d99Lc^KLANXD?J|ox1)PJsz{44%j{K&g& zq49Lpj}5uUV`e+LCWw{E&Y{j>H`4Fl_sjN+GKjw~sFExcF>jhdtPC(Y9IG7PAFJKT z-9bH%-uXQypS!5&@h)Syz{tJgnW}*KtHKz2{|nEHFFt9@IW42uCiG)DBSu3tdB@&z zX=)?fXU1nD&fNFd_pA*{k?F?2y2sZ{8HWl+`0|`&%C&;i*oEn&>EuoQCM*hrRp)1@ z%<1-p%+oGD?C;MQR*17uL`m==5=8>9w3JE(KWa|i>0i`5>Je@JFWT>O*NDF0x>10czby*2qZerczrKqA!g3-gYtLh9*WY zb@Q0#4Q4EETKZ<_TMD|&Ql{N(^0;UD+Uoo2$Lj}M+bLRgliwwEFvUERsnU;GN9sL| zu`DPk{8132!metkwySblfL6F$a5z0==4x&*^J!MS`qfOCxs4g;tY)d`zWRRIUfv$# zY{rGfh3;+t1@S6ql@BTf{T%jtJ@ug3n${}E#&N657TtmVo0+XE%Yv?J&lUUXVA$i{ z+D_DNMceiP!ahnG-goM^@>iqN11d}E>#lAT=DI`ees~Ggjkcu@IJIWhwfj9*Ayyh2 zGdnlk{qyfPz8p@hS}Z4TGM!?Imk9nZPwlHiby)l1XA>5?L+^--(Qvht8p&_*zAQLf35NKKBz5Np$~ zDYB{WG4PSFh{i$S@)Ha`Hjx7E5J?Vk9JVsS6*Ce>Ri%!__a#yaR29@Ccpvdh@fN8NsS4lk zB=WhR+;zwP!1&S8{r+`kRC`p?>-&#z*##*h(K|m?6P<1H&c~)dGRd*U#qjQ5+1}Vb zoQWFyR%BMp8ZcuS_>2SRgQEt7B_mo7BJf zdTkJGc>cY1Mf$jRFMO|X+VWfaH~V$;HR|<)Udqj1>%`GUGT*2S4Z(wP{28JqObjvh z180e~?glCJvQ-~LyRv%{PVAP#+!I>Gk3&{;yyS&Hx6G;pm1Fi#{A7rq=jgN;IN=^d z^+ENB3m$ylXP#upV|iR3aLRpJ%^-xI$z-Hq)M&NcTJ)|Z*aZLMi%t56+OAw9^IHt9;9%V~vmHUrf!HXF7K&CfK7&d!&0FR0ZAcJHEx9 z6cXkTJ|pCzYo+_ip=zeyaIB~QWj*B0W1d?AIw!;8nL)YL={SSC+D`RLbB6hw2bbf^ z>S{zw)10b2#zna~&64}=(01ZY5A8>V-=o@w+XM2ysebdA>Y5Hr)J;wtaLhI2VHSQI zJKvLR}|d7--`T6W&fy4yisk$yC{@>25W$pd`%HFnOs z^K6lW>VkweRrl&swP=D!_l_HUn|Ix43old|oi+Jx@NToAG8VBfXVhmy@Ahs^BkZd$ z{Cf{#6N((wjSu3+tXJ|5$44jOitZhg9PUR#x(JCm@hlb^qn-0ltB&k1ljeAtJYHX| zx6Qx11YJrWm@Y7RXkVq?D9vhJ+SS>Scz};e_7&$ceup83r3gj{UQbn?z1}yzW{Whe zoFABH;1}jsa!)u>o3zqdCc>bRJSnd@;K$VzDJbopFM1B{i@LSdZI!&dZDa3@{gmFwLkt zqaR@dvtY3gVTXe7BzBHeERN=K>BSs5t^_VVI&1P=alW&ozVA64W>Cnh^Bmr9f}t1i z!6INgyZ{&mm%g%;!Ta|xZ-8SE3~Ycg3<7Wj3;etUeqdnWQsMsRKM1&~@c(lRbNcjV zwp%X1QiNcn#DqUN!tN!ZR6OgnYm$+Sfn9E*fEC9fi}dA>5OPFGz-z^&fqRC?JcSC| z2aASoJ+*>>P6dlj!vVKaB4q{YQbq+^6XADY26v&TJtKsbp4#W4FT*CA#!R3md~nrY z{PMmjIX>Cxl*ICS-o~KrciqjGaV7S{dY9cV=fs7om37mZQh1jKzYptnCyRe4a9Z*N zfdW1M4gGSRjp06}N=zdY2c`JMa7uDg^7$A4_r9<=fuODk?6jeO{rW-za1QIe*b9bw z(8t@RN1Mqajnm@bv3v?q9-bFoJ+G`fi5+S#8xGxyG#i``;7PAMT^?^2wQ8R$7*mkJ z{pYLlhtL~|)(}F@xsKo$^Xt8_Y-BoJlEC-2AoX%sberTocRz_taWoWZ^T*Ig;z4~| z=f>p#0 z$M2Q+F_vDV#&-KhB51rZVcc^@Wa;L7_klBCU!w9?=eXP-;mC1?<0eJ{zdBw=kJfq@ zO$$e%0D`5!%QHb3Zn#`fll&N^^vCCmrJ~|??MP~CA#mg5X@})XQ-piN3?R6-;r{Wl zK*VX;y$V7RL^7OseV)Ge4GtNFa4%t=R#PtYKL?6Jff%%AOI0$Q{?A!g(}V8R5+dij z9OKG=+&K@?D=`$I-{?!Qz^7O5Qqf^!*tag#kb-glnmW=#Wcie73iEVd3al&}ue0>b z?HjS2Uj1>;|B2Ojn2;0^3K!DOWbvW%+19eakr&q5U4`)|bTgVQ?FIvXyv82SXe2Yp zbh=D`-#>LC_|GX{^MecbVJqyR%WYdm>zhO$`^Cpfvj=6#cmk}4 zla*D{$C}$N34tHBz10EEU*2tx4$oCo@A5 z$0*6nXA>`tIc3aVFo#)OF`+p?Ke2l<)HA2-TM&?8I^mHq9VK9RUNC9y2_~)*Es>ne zAG%N8U#C1eO;{f%9lCbz-rP(!9h`PH3ET{a@d&(6;0RfKv-Pt&O`+IPYcw=g)45w> z?^&io{2wzNnDwc+C{gVZLT;xF#(|4WSs|lY?`>RfE)P?Vx%`Xf%L&^8upB_2B|e_~Q8 zYiD7TzaA8PtY;z#Xq~Av)kqO=>(NNkovpN57U6WibL>PHgqw6a-EcB&uC>{`bLx62 zAq*^jH%%f|F7mz61{a4z?W>T*D~tfWz2i<&hYGj7snUm^u3EP`*-a<7Wp7 z(lv{8f4skxFebfQLe4myb@QfN7JNJvbYowU3oo&FyeWR%aeut@5S0CPe{*i5R%Lc< z%bB)vEl#^IS^#KUav{vk9ew@7`76rT&SUc`< zUF+djSPU8J@}$T8q{e)mom;d>M&t$A?nL1!smF0I6A>bpsg-P;*-S+@ufoP)${`Xu zc<6J&>Rjo8x z7o1~jn=q_9uXMk67QB7$i`Z)B0VLUsDxE#mI02nw9sUqx=S~R0YRV?vnh@cByk2MM zyK@L@ryTQ0guLqt-tZ43h*a+fO&YeF_F8(kV7E z%o17hv3H-4aZnZ?A1>#cfP!&rGg}QWP;f}&k@$PNk5k~c-R_3K-7?ng#SGgz_lj(D zkkA@@1m0%`+-1^-WzxH;)#{D_qj-6bn^6Me<3$Z8N8dsBhtrhH2#J*IKEw2{i6D== zPLDl-+v!1ZV;-D8%NdZmUxi3soy0cnk+|%!95R!sC&e%NAY;{q67$yeCve`bBQHZN zS^DQ2-F|bL1&Ii~@P~Q;vuAT|3r94Cpzrm^teOmousW^lXsw{{22eLBgka&QeJbg# z@ej2UZLcsmFpq7H!`qUq`};$WrpXpHn$}GgXVH1z#`1wA4z|(I&L;;U@4-A!K7Y}{E`WhAy0O@P`M1TbZxU#4=S}lD&LmoX}p**T>!Nk z>4ymLObIb1EWM56w#i!Tg^?S>pziCFPZ5~!k7w(&ER)h;DJw@2=ffnNsdhd$>16db zgSr+8EIHv3A!6|z39T)W5qI{wUCzIF=YgGcq}Ft<_JDJBq=SO)eM<2x5mdpMz?`h( z84ASCu=k4sk3Mct^A(uSvE;EKiee@$ReG%p5=j{)c-JOqOL{XD;Of?P_MPi-8OviU z_MBd$ZfxGVleiId750+7CrQwwk>Y#QpY;>lD+)pSWkmA`96C9=z$_k&&&zmTha#=T z6w3+D_YEkpG;5?fgD{W~b#LJTGbSV^s7sASGA&Guls1_zeKMcZ$o;w2W948cgi{WI zg2d_z85dk!8fVZhl=f=~zkek+Y9oL*u5HjiCxQa!+4$`<8LR5a)hDzs_q(886-jQW zv`is)TM~jNa29aN2mBC7oC+@u2t>861qOKnr(cxlv^H8a%zk>C_GKv826&3oMBm#z;F zhmQ+vWE8M1Q|(4&1Uf0oYcHT2;>^P+frX2MS(u`{vvRkOz$irTmqKhIT_pU@j@j^- zNRa05;g%k^vkO-GdQDa;qV)yC84|Z3w2^6a97?nnAuM7v`vEh4MOZPG3iH{jC1z*v zN9r4^f_6k2L|teNu~hjzDpxUxye`fC{zkyW_qgN4|6{gX^mGj?{cMc4^2=d-og}Hw zW*Sw*EC_dzHP6xOFkd+YwE^sdcx;aZQKz1~gTWQ9t5L!GkDcF00led4nfLIYDUIDv zNGg_NiEpYz$A@!=o_>Y`7e@S3YopsOD@O$#5|tc^!P!%d;{6=Q?u0^Y$R^5G(Z=kQ z4==+qr5v`7YGx%V1_P)=Bv4W$5`WTOqQ8?pgde42jD?9LhT!AATw3nqj}= zglEy7ZEzVE4(^){WsIgmOgal=XojfgWg*nlwm&2hiKytwnI*glx}&77mlv?4&Z$CN z>6KV4Qf|hwUBAR|#Ibo1I77Y#BctGy~YtCo(? z@!93M@onV{=O>ImkiM6RNa|M{6mSxFnnAVVDD4RBYuy6d{L&O%9&&I3Dj(<)d{`CS z_}o_K4$%=AN0I3~lE*bjQu*0T_o&?JDLnAg3|)Gr)2!OuplboP>qX;{ANo9aVh=Ck zJuQ3&>HU^0Zf|5iK?@r=(L<9{k`6;6xM&I8?fcX~7 z^koj!bw0jJL_SI-)$#ra7l2ASGNlHGjGSnWf~+4I>tZ%mZMXa7N4oQM@INDRm&+~x zu$}VI&8xvYVEv_(6YgBI!blNH2~DWO)$nBV!788U(!i$RocdHkkpX9v@s8r_r=tnP z0pGkGG41IvZoifDiON4YlF&Z6RVQT_-#510+QY`%B3_#f*^xq4V>1IuBW@^xxGG~y zkmqtxTF@{Zj+ZXV)QRtAipRpCb@KumH5W$U2QpkgPKJ`>SH@zx+Um9u$M`b%osYwEVGiIdhxuI;s1t674VQJKk5`?D zg4xJ_LFYV7F96UQVGbamxebo@UaC?;p}wlq`z96t za_KV(;LVkq?bm-(6yVaFXarnh6i&+pTfxWcLDN^*?5YSRs9uDe7N2Ufw#LIg7s-4g z|KmE^IH4~Rtxq-EJ9_)+-g%;)i&md)sXq~mI04AJL3rtvvj;&EP zAcK7NZJxDk+V|-FM*S%QQ<43TIHdYx*X+(aEQb7S{pJsFBMkY|` zIgNsWvFP*S;yjxFNZ{xL}ZJS*^^V<3rEQ7ry79{W8&WAqEgd9cQ-sd1o$wd0r?LYw{Nx0u<(;uzKN5tQY0epEO+hBle;&o_epeGVlCv+%hwb+F zCwYRRAVMY*tpME15GmI9z2T2eu)<@vvsPufcyLLh9p=ppNj4SWBBTEXi;O^iIa_6J z<92g)ya}$qz1R=7#rwHfZYZDPKbj73!_X5)>bKt+w9b|aBTHOI7_e?^w#(|Ps62Th z1sAAK*6~bN>+E*il4S7NA-5b(rVYVUoW3y)jNS z-uy2%mgj7#SbiN;5VCYCcKNzjIOA*!Evna8wJ_172@Xr~zu%HLp{zJ;_JSvHldL=L zVW;j2P^h+;udDUPAiOc%X{KS+A>4K$^f-2%E;8S%vY4MSOe1DctAdmTG$G>Joa>zp z72@r@n>U}9+Dav4(e)kd;Xj#T50cvN`_)S~68rbG{DkfGDb&|-y13y&^(&PPRvTJd zz>y`}1;akT%p=GpavXt)GJkl#a99gaS#cAVIu=hH2&=8#)=&%o%~pnD@^V|i?=;Z> z@f!xMsO1SMWr6J&niNL#j(9dh=g+Z>8s7lSZ-0Avc!?QOBbV~J^M!f)(yx%HFzqG1 z@WEt$UgsbBpw-T>up({(fYvW=!uo%47-4B;G0COz7T|ixHqyuS>p@B+DUhO+CjvR^ zbaOB)5oxReAaf7LKxnyk0&QU0@Trfgos$5(nw@buRjPO3Lwc8L$q6kbxa2|sBU1xY z-VTpO4njnnnN5JV)@EF4wcHBPC(N{*DrsTRtdIMs4XN*g6QeF;NN%k1j}qi^eE!$SXFqY5|(-*|j8;`Z%S2R)Y1V1i3X@T`lr|Gx$KMZ7-#Dq5b;#cj`3EeN}9a3_SWsND%E5CK0 zu0_g=JB=hxoyrT|R}2o2plp?gZA*@Zt?kcN7n3$wdHZdnTnd-GO+@1|-up>;&LWl3 zd$I#acmJEV|LfqnaH`zPUtn2qzH3}RmZVSP@~Rec|Jq}8%c{!XJpl4Q}8uo<01$bCn;QPGn_m~@KI z2ZGt{(Q;k3)R$_1$;8%8YI*RBzI*qLy^S-Y8MThgBSm9MXl{hBqHiTA;*LqKt^6*)1F4@RYr9?m3nRW`5D&s^FJ$U z&NRXYZd?(BKH1q5f2(rA6W{Vi-*_ct7WhbJJBVf^K7;C%v7*G;^eio?U&2g$p5ocm z@0J+;XP+fuu}bN^rk&Ge%<$)81g7j@cTNm`^@}SZd^cr)Z`hk+7RtpgyRk&4Wu zyIE1yVstLQbF11)av+PR-FGz-xCYYd6eAO%;M?h(m-jR5^USh@Fed9mN-f`kb$(<< zmRfBMr5Tw~txM(8ZL9qHYXrxL;1GFnl{W`ox}syDTS9o)a;%uOsdW10oi>w_aRH3( z%&}Um9M!k=(<{Il5-!dShE@@}3*3M4fb2;{QeRKoB*J9zE}l*wgb{I%5bn=y?t}JT zYlk8_ve*nDLF!+5neGV3AGJwl3K(2vz;6UHupGTWbRAaOqC{W32~?6gm@1`YC3)R8 z^Io$kH{sk8wxbphQ*IuZv+BK8TaZc5-fU$9MLdh+;?~gR%_BE9^RhpTYAi%Hc#o}b-a>^5kuk~)GN`cFGWco=XE7c zB{=zlk3^-5^s9+>Dfl5Zss0zNMg`s~-`um29wCPH)3kbBA{4%W7BkslVHK^1lUT|C zd2&Vg`m7(-0@&Ny^+rDLFcb`Dx)KDIzNg7OMr6m`WMFl|CUEN-1?ZCqxN`0Ey50wp z5Sg0!OSxh1wC}!a1A#qOCt`mcQ{(Mo#rQYly%u|MZJjrag^wYss!mVwYEfA}gRV$z z@~;fZ9@b1;9YZ-+5NMzyq!;*ENhgWloGh^sTcuRj&%tVnI?#_Vzy7a_p8ixAM|t)< zB0NiRd^pH+)pJ@ch6DRz5Yhm&F#fZH^Uv`TKiu;TNyp;AJP!lHML%}^21oD(>B4C3 z-$(&~&0}Al0PK#_g_yP**Y3VbQ?ljdjk=Hi=|=yszhCXi_Mf!sA8PbT0`7U0govGQ z8qZ(-iGSW-qgJ4~G@t)#?f*Ab_qqi7VMipvv)`Z_q4nE3L#e{mzg(Zc`8&G;kL`yo z*&xxn8YXx!`EbhN4*GAkbq|@gA z@Hy+Z!y)5Mbe10^DAV~_B*)h-?54v2_u`JB|6)-88I);Iracup2_F|Ley^T_e!k>; zY0LS#$|r2L*vyhb2}@ZFz{3Mmty|SfQBORbg?cAh7XLJ8QQ$K8|JF@k*ftkkWWJvNwV z+z&mX3WI+UASxW77I_`r0(FfW!r*HvWen2ZdJm|Y#DebiZ&B$KWq<~Rt1$qWY`Ji+ z<_2=UBa^xg?JqVh9`g*EwN7;ed9rB(s***sC#=QcLPHUd`2|E;k}0vAj6a5v@XrCr zqrpdaBvUHpoy6bF44||h-cd21LYVbt0d^t5ir zMq1n9{>F~eWGp9;pnMbDSmHf8U2Zs^_c_0(4~n-Vmm_d(KJfq`OZS-hozGpRq5+r( z0GHB_O9*vrpf&CP$!@XO=q3Xm`)bun9%ovijBi6gJgj@ z=7;uzC&uU*VKmNXX`26>T)^@8PoS3z2c;3mXq9C|TJlCjOZV49C=Y-WkKqQ>ePphif_!&!EOuq>m2GJGoLI< za@qbBdk2M7yuc6iTT*krFBGRQ(Q#=sr!^55`2%Cw(lvZ5wwaTfi|~)1I(<2_+~KB zUu$rpa%*>qo(l4iM3U(3`6Q5fw%6%#Lcm`@~fyS+HC4iYJeH}44!$j;7GVLz;=wFUW=flzvaQFw`9pJy_=>6bBy z>7Kr5k`$e=K}WoG;RFKG4Y5>N->N0a5`i)SU)X`y=$Cf86W8@z(p$S9WFo2GQ$#bj z>Uiq;SnJ4=Ixcz9h7rs{j+M0B# zwfp|(y8g5e%DTS{ykxe;Ry%fwwuo6wyp2Izt`9ekB=5I1PyqVt3QYp6#SOHb&>;(m zE1p5Rxqs4IgRyN=inrQFJ#@v6K8rQeHrJtNl>}K*YzrJ8&E-6YBEHJJY<2cqpLQD& z4AjjP;W^~bawXJH7Csr#+{fcx zI?(AG2%o@D%>en-Jk`uh!N3Th;BP=zu~*W-&2_}$u@-_KLwmL}-djA}3C1-1DZ1YG zHakLOCt6%fe^UoZ(2UOIh3_5ngLMw}FRxLgY&cAE4vDW}-z#+GC{H#Mj;XOQLlkn9 zI8b&I804Ks2U7$|_gh$Ow-hE*h2aNLXuP?5pBxfe=yC|@YF1W57U_7{>3VOZ-{h0# zdgMaI-j#-H{+T7c@}$U$DZSorhFeu7n2JoYRG5j+QalG`3%Xu0tFRJbs7GG*b1u?5 z+X&i{`JSwbHAm>UkcN|3yy-lTrcL%u^*U&Nn$^Y z_nrZ13z|~agKW#d;a1wko3xs{Rb zEiBJsiFxhCoK`M-Y~I(_d*dQw6|27W3T6mO)4GaNzO`0d{Yyty>6{K%fir+|Uy zFR(C20_QM?dfpUYXk>7r!fWBL6*p*by}u7Xr&l#PV*Tc;+G(h8a3tKkZ*$}zq-Ln3 z;)J>N%2z}M{GCX}VbBylo~3Hq(uU9XI`BvHaSK2kOOXSp(n2>rExRjo5Sick4f^W^*yGmX?to6S z__2C1I(_-IcHGftg$ORxmg|RDT59xc#xk3bw<7-mr2qRHXbS-DBX%5E@_lf#7=o|3 z`FpecnZLX(|5aLkQHR?Yi{_%`o4NHtRece3cAi>FY!?MKv3O}^E~4vy@k8JiV+e5U z3lZ8fuRz<>QHc$NAjR1Kz43n@Jd;bEU@)g8ib(!%Nc<;9W`?ud6Z=0P>z`A*o;nMz zzP4KbhWp7V6mngtN{)4^CZ$wE_UydsLz!F~(&jgfoajRuu+F4;GSV{sOsfAS+kPSf z&h&jw_oe1bq3S#K8t3yoUh5U#1a{LH7r-l$e)g8;{`S(LUWz<+I4sf=19zH;C6=;< zLorkRWMd>g%fk5N$-x9zjD~qxpPWszgV2yD4cg$h>k-HX0C=(=&6aln;I-VXvfoAq z7GPW2uCv`7hhm~v_Jjk*omxOBt^e< zWq)`*T|jTMX!S+GL4txp(*U8Vt~ZwHH=zIVf4L3 zY}gmK?0mknE}OEA(wWC?03N+SRoGz%977H}W3LbQQkj!GyhMrnBEmlfAz{3{T65H} zu8PlGMx>ciV6tV&vQ|(iw%Ht5FYt-Z_&>4!gajzV2r-zx{0{jsR0Zu0;9}XhHzSwc5HPJy*4deQGy%~o0;teKVsVLJdiygP zD9HvsLHJ53gdWhKPbV+<>{Nc+7n%YDDJtxuEy)POrVMaZ{e0U^*k$$BE2V!S(!XeE zsM@tQw4yf=^hNOGBT4jrE{tCpKPSo!jdn#4S| zN6uh14gmtRyNN3ds*qB%^Yn%;0CV4!mxv>i5^61%pFIyHcP9lkDG|o%2qgVI8(^Mv zsvinETk+PA2Hpoja{ zL>4-W-gi4=xvM#pn8-8Sz?vW(u)LE+4)s;|Mo^^Fc*TvGSgP0Q93Y+6izKU5k7ZQO zpi#mX#&;4Z2;iRlSJ%g0I`V2F5+ZNNSu zAy~|O@IF%6O<^u06ScN#8F>j-2;f|BY?I(XsP5%5`{9@bRA@ms2|Ttv0zyB~YH+Do zgAsB)fni0YwZ0-H7d}3t`qnMu*r1Ky30BJFUz&nYKXrIdgr~4iOPKZ+i%g@*_!|$6 ztrtiGy-ZDe#PEEk%UeL=?`GBnJaL<`a!bCce=v8uXE_qmbbJucqMG;u{o0a zL^@&*~&H5>cmqX$^I@c0mB>Nd?Uy9VXL-;N< znz;g4Qsk0&xQP&5>7O-ya-mwf5~As4>!IVo7r3k)tmRyE9j%_U{f6bm9f}6UF5d^| zas-nyDgrjJJ|X2~g+T3QNX&uTc&dEn{^DL*AEq6Jl)N=;Z z1x40DD(<{*#}v5UTNp$Jq_;fA&Auh~%x}DC zQNb#NwGuhbU`^8E;{GGGTXTD!MT0V*83TtQs%7 z@d`Sh; z-D?V;{o~e5^Cy_;f)N+^6cJm zQz#XwA4|lwp!p<&5Ym~-N;_c{`pS^Bh6;i3MRn zS@p{jeccmz?D8B?kNN!h6j`s^FM3N{xn2c&3rWykJK{X|vgx5vahymu1b?g=6w4{E z-y9UUEzrvI5rts6y(3i&;3__e`L+31f7%4|sb5!83nm2r?n`7X*UF(JAM4;QFAgM_ zeV|zG73qK7q@Yq~o9l9aKFLN>&X2{4`%zN?*@hN-Bvh}12qlLZSzOv~oQDvJm6Qn8 zYN?CepBDOdG7YDX6$Y|TRSNnc63ZUPXmHj>3qyoxHrM4JB<0U?-xc6;Mw#{?7Cz;U zYM`Cq9xB#>-S0^WM}v?8=rmu&y4PN+O*^{XjHV0(eodoySG$8=75bsqDxs#$bGi2s z__Fy3WQH7bnntDbZU2R2atIJm?Wu;$(BDp^cZS?pL6a&sjS*H6QDTwXQ}p~fCuQw8 z+UC)}Bv(%=LG7{|vigrNzP$%G`W!W~&z;OokxJ6-8l}(b@`sJ5VT5r+>=-<(1 z2~6*3L#tU@wZ#KxN^BsXsMNHwRVIYA$_4}>Ye&+0T1TBrG-YIs5r*`p6?ZK=1K+$e zyReDSnAx&%?)x?(#9sOKehnPbR$u$U#YDlCW6Cwag;i{`O*hDIV=;uJcA`kI9+N%b z{N+!4wRC|axh~nP&>6_uLe{>;;?sj}FH+7T4x(#19pH7dCqi6?Fw`-Fosuar;UHBt zil%AHVFEWfi`ZC{gBQdl&Q@PTcz8$4VJQefxh-yd8^p%b` zO&!_9d@Z>qS2rUNsqb^0G$XohhQ|`S+xr~5^;R#j3h$@9(;2rMb)rm#-=q%I&%Jk@ zzU=NI1{VFWMih<)UJ+5OI2BE&&-a=Zc{QamwMac-wD&}R7wzUX;E+d$@!!(>Lh4qM zYDs`hZS2H?Kji?|uvNA={gd5P_On!2MJI)%0yp=P&Ca`F(`!$ z>v*$tS)A05V7DB#YP+0t)7(4T5TS$h0c?1Y@Urn{CqGo_;8@cI-Fal#tMu#c$a_wm z<+--2%{EPxtyKn`wJWw> zpH{WEB>$SCu{)lc1wf?F?%%H*ce20 zD%1nMsQMNu5Fea8RCG#wM8&|N=a`;;VXkPa>SZF*A+oYsR3bvBFe>o z$A+?6l9#&sA`a9Hp?ttum(Kocyw0huIt$}h5}pqupjT1(lv4Ek_{;qH4^!~!Ay?1| z_3g=Rl>W=2`_D4Wk%hB+Q_dXy>d)l*k7TCM061(E8gAt)|7Ev|m-H(#36WnbUv&Nu z*#19UITxLEQ{PjnR&DVlw+r01_#hLfi1<2;55}|6IIjW9tHn~Y*Rb8YWOM@7b^yrt z1Hd$QuETbFq=Wx#Nc3p~%)@yMzzd3oCe^C|zM;4Q!0!3&(d=H0#}99|0D<3hq9DHb z#kmZwvZ9A$i{N&2st(D`_SNw!Vi*%0@7OyP25fCb0?`~{2EWsyFSbonjG!9rD z>YK>*q+Ld~dOFZF?hJA#pOj*t2=^Re?SB4fH$64<*T$dJw+JUZxXf>#kO{zeQWRGJ zbT$XDpdK(aLA*B_Wa&xmkLo1#;H&v~oDKLTF3#zTDRp|HUO!3e1kXv>3?OQiCegDc zI-=svxs0mS7W?85@G^j2KI;>qj3H-nP%}@gh9V@&Ke^o-GFp_W2+jfPy{#3yMvTMp zN(Ula5{sVy?s$G|?vcbzfc%y(0k3^Q+moBMg7gI!tkFm1riwa%BdkHgNK+IyVi?rs z?ygTW-uCP+HhBzitU#1&taRe}tTm=jI-FjOlOh3~l0f(JN@1ljl)tUtv;K-sgu`-1H>TOn$_3oi4QWRIPbh397ETT!8+aG$*u>OXzi0S za_?i^|Ktz<0L>7aR2GwhhG=PKj{8Mo(7@>>u(Vj}0nG~c#HB=LTf@T0uNj+1um@xuqc=BhW256ft+jiF^djQn`;)&gZhY_szzUq96)^u zCBcxfkR146*D0V0l9`Nsc=VGmhN&lN6@e1H#S>~Jda*ydDfmDENKM3|aU~w;P{1

    3Mp4ochvi2b@njf0NOn0uiELE!E^(wTx0 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 WKSi5Op94Gzi^0>?&t;ucLK6U6Q7#q$ literal 0 HcmV?d00001 diff --git a/bin/Debug/net8.0/rookie-csharp.deps.json b/bin/Debug/net8.0/rookie-csharp.deps.json new file mode 100644 index 0000000..6dca9d7 --- /dev/null +++ b/bin/Debug/net8.0/rookie-csharp.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "rookie-csharp/1.0.0": { + "runtime": { + "rookie-csharp.dll": {} + } + } + } + }, + "libraries": { + "rookie-csharp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/Debug/net8.0/rookie-csharp.dll b/bin/Debug/net8.0/rookie-csharp.dll new file mode 100644 index 0000000000000000000000000000000000000000..dc14f34a91f7dcf70545d7dcbf40b287516c3025 GIT binary patch literal 27648 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 G@IL`!CJVX% literal 0 HcmV?d00001 diff --git a/bin/Debug/net8.0/rookie-csharp.exe b/bin/Debug/net8.0/rookie-csharp.exe new file mode 100644 index 0000000000000000000000000000000000000000..53dd3bd98606d3395a579bfead28107f9f8e3535 GIT binary patch literal 135168 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

    m3fKh{-JkR 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 literal 0 HcmV?d00001 diff --git a/bin/Debug/net8.0/rookie-csharp.pdb b/bin/Debug/net8.0/rookie-csharp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4f853b217d4743eadb059451f4f409aff6ee951f GIT binary patch literal 22280 zcmd74cU)9Q7e74rvg|HZilSme#eyOo1VyC^C}6=FF}N&?uEH+vE+QIr7c{omTkO4H z@4Y3)6dx0lXcCjCQKKd%MorP^W1jea&)mDPD#`o4zrTKdoVoYR%qer`%$YN@%uUMa zkt8sI(LZ;j-YH1|W5PqicmY$gH}Fz~)UtO$K9&85)Xy96M8@KM0El?cv6%FR;by9j zugjPM&zAjjSOVUy^q$r~BL&aXfYXxzClwiq*xY50uCK1RmbK%`^r|YCRm0uBk6M<_ zm~!B1v8{_I<5Kk^e56pMQY3;&+8szvNRdcNq)tdpkzA3eo@DStqPoUN^bev+9c8e`8dvdq;X# zv7;STY-p_XK0a2(K11pjr(&m(dUsN>%}9+qt5_ydF;cg96&r!{5mM_e65f3N6qs8# zf}yo;B1=ZnB2^+S;pI+jOE)KW66pfc^==CG11~2W`lnz|x;eAwNd5@~JG1r)&MZQH zPnMtkuvqCC!=KW7SIip`)*zXb zFA8at?Qk?;C%{f}eJPqL04rpe=9DvFwG3wgRsnXGVFO?_U|$(-1=t0!pA3_2y8^B+ z!!$qK05_0f8YF@n0&dRVX?}~$U#<^AnTG?6Da||qH37Z`;W5bs264I1cYkWVk(G6W(dAQu|=QG?xjk3%G-fzY+Q(nC4+2>T=}z zP{8DqXfjZJ7+`0#Z6?FvfH5#ESB4`1rvoNKt%vrJfa#wViQp)}QFu?3;b_9gJIUjR z`WU%AwXwr$yf;FskNS>sJ^7dhfMaF2vjbd5Zr>2~adJJ$>+b;fW&^ zvqSqP4)7S%HwBz1*Z&uAGr*ZLOpgG-17(=#+hLNQCVg|%50dK-18#}&d|ig?0S*M5 zC&O(4w{n180JnC4X*}8h&X?P_1{?%yFOcCF$V0FWZ~*Gao(U%ZIuh?^Wq3H?`FJ0N z)DHC{WcU2x!j({I|T4J2RIb)co}|*dV(hc&cJ(f8J-0AZM?TY3PZhBZcp_QfNe5N>y{m+ z@gV+@@CX%hJvnQFCj-V($m^p4Pm$|Mp9H@NH~{sePlBfcw(FDNX@Kqei~&4d#wUA? z1w2EB`^oT3z|MH5HIVAx0!(8~>uVg~S#tXUGCW&u-&=;~$nE20crIXfyayt60{%Q1 zzrPGG08DEx`9G>(2$*~i&7aPI7s>610FDQ|REEjFbpgCWhHZem0$we{A%MF9UL(Wg zpA!JDli?eH69I3LVbWg`;3^p&1~?h;HW|(XoC0{e44VOW2fRmyhawmu_z++X>gtFR zd>F7E@b7{I9|8Ou>S&D8(etA+zANA!m_K%ybl%eeCV!Oa0CxbKcLYFTptuF!`*0@DFx*$OZ>Fz$D*bhxYXWzvcjw|IKxP$;O8|z#f3}UV=3* z!CD8H=odJ^G+sIf_%*;IFu&~bk`3!I9(I`g!$`o#WPOu<>@bFguO|c_M?K-v{1}C| z6LNbBR0uu^nBq=a(~1C}lIzLd?QmVZw?QgK{b{+ry#q|Tp!L>(`gi1dig8N-pOImb z&*T6%09@(-Q(Q~`A|SkEag0r&j5y6xnmw5Bshv&ZB!%J

    ca&C= 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 M=;>v>-kY)i2MAjK761SM literal 0 HcmV?d00001 diff --git a/bin/Debug/net8.0/rookie-csharp.runtimeconfig.json b/bin/Debug/net8.0/rookie-csharp.runtimeconfig.json new file mode 100644 index 0000000..becfaea --- /dev/null +++ b/bin/Debug/net8.0/rookie-csharp.runtimeconfig.json @@ -0,0 +1,12 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/index.html b/index.html index 828edb0..55b7f1e 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ -README

    -

    rookie-csharp

    学习入门csharp的记录

    参考: https://www.runoob.com/csharp/csharp-tutorial.html

    Tip

    • C#的构想很接近C++,但是它和JAVA更相似,因为我是写C++比较多,所以这个记录会记录我对C#的,从C++角度的一些理解。

    • 如果想通过本文档学习了解C#,需要先熟练编写C++代码,理解面向对象编程思想。

    • 本文档提供简单入门,深入了解需要通过项目来学习,通过本文档是不够的。

    环境


    下面代码在文件Lesson1.cs中。

    目录

    简单入门

    首先我用的目录结构:

    src 里面是每一章节的代码 Lessonx.cs

    Main.cs:

    然后在Src/Lesson1.cs里定义一些类和接口。

    先来打印一个hello world.

    程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句, 相当于C++的 using namespace std;

    后面Test1就是一个函数了,和C++一样,如果不是static方法,需要创建对象才能调用,如果是static方法,可以直接通过类名调用。

    就是打印语句,Console是System命名空间的,要包含上才能用。

    是针对于VSStudio的,防止命令行快速闪退。

    Note

    • C# 是大小写敏感的。

    • 所有的语句和表达式必须以分号(;)结尾。

    • 程序的执行从 Main 方法开始。

    • 与 Java 不同的是,文件名可以不同于类的名称。

    编写一个简单的类

    只要会一门面向对象语言其实上面的代码都是很好懂的。

    Tip

    • 构造函数要带上public不然外面访问不到(细节还没学,后面会详细学)

    • 和C++一样,如果显示编写了构造函数,默认构造就不会自动构造,需要提供无参的构造,不然就不能用new Circle()来构造。

    • 如果不初始化字段,会调用自己的构造函数。上面的int就会默认构造为0。

    顶级语句

    一句话:可以想像写Python一样写。

    特点:

    • 无需类或方法:顶级语句允许你直接在文件的顶层编写代码,无需定义类或方法。

    • 文件作为入口点:包含顶级语句的文件被视为程序的入口点,类似于 C# 之前的 Main 方法。

    • 自动 Main 方法:编译器会自动生成一个 Main 方法,并将顶级语句作为 Main 方法的主体。

    • 支持局部函数:尽管不需要定义类,但顶级语句的文件中仍然可以定义局部函数。

    • 更好的可读性:对于简单的脚本或工具,顶级语句提供了更好的可读性和简洁性。

    • 适用于小型项目:顶级语句非常适合小型项目或脚本,可以快速编写和运行代码。

    • 与现有代码兼容:顶级语句可以与现有的 C# 代码库一起使用,不会影响现有代码。

    Warning

    • 文件限制:顶级语句只能在一个源文件中使用。如果在一个项目中有多个使用顶级语句的文件,会导致编译错误。

    • 程序入口:如果使用顶级语句,则该文件会隐式地包含 Main 方法,并且该文件将成为程序的入口点。

    • 作用域限制:顶级语句中的代码共享一个全局作用域,这意味着可以在顶级语句中定义的变量和方法可以在整个文件中访问。

    • varauto一样,推导类型

    • Console.WriteLine("a: {0}, b:{1}, a+b:{2}", a, b, a + b);就是可变参数,跟printf一个道理,012表示第123个参数,看例子就能懂

    • 可以像C++一样用条件编译

    类型

    值类型

    通过程序运行结果就可以得出每一种变量的默认值和变量的空间占的大小。

    变量的范围: https://www.runoob.com/csharp/csharp-data-types.html

    浅拷贝还是深拷贝

    类是浅拷贝。

    为了深拷贝,首先需要提供拷贝构造,和cpp一样

    然后需要显示调用拷贝构造才能构造新对象。

    Caution

    Circle c2 = c1; // 就算有拷贝构造,这个也是浅拷贝,不同于C++

    引用类型

    引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

    换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的引用类型有:objectdynamicstring

    对象(Object)类型

    对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

    当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱

    动态(Dynamic)类型

    您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

    声明动态类型的语法:

    例如:

    动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

    字符串(String)类型

    字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

    C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待。

    用户自定义引用类型有:class、interface 或 delegate。

    参考: https://www.runoob.com/csharp/csharp-data-types.html

    • String是只读的

    • String str2 = str;是浅拷贝

    • Console.WriteLine("str addr: {0}, {1}", &str, &str2); // error是非法操作, C#是高级的安全语言,不能访问地址,如果要判断是不是同一个引用,可以用 Object.ReferenceEquals

    • Console.WriteLine(Object.ReferenceEquals(str, str2));可以判断两个变量是不是指向同一个对象

    • StringBuilder是可变字符串对象

    • StringBuilder mutable_str2 = new StringBuilder(mutable_str.ToString()); // deepcopy 是深拷贝

    • StringBuilder mutable_str2 = mutable_str; // reference 是引用

    指针类型

    后续说明


    下面代码在Lesson2.cs中。

    类型转换

    隐式和显式

    C#中有两种类型转换:隐式和显式,和CPP一样的,很好理解。

    显示就是强转,强转可能会导致丢失数据,这个也很好理解,不赘述。

    类型转换方法

    序号内置方法
    1ToBoolean 如果可能的话,把类型转换为布尔型。
    2ToByte 把类型转换为字节类型。
    3ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。
    4ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。
    5ToDecimal 把浮点型或整数类型转换为十进制类型。
    6ToDouble 把类型转换为双精度浮点型。
    7ToInt16 把类型转换为 16 位整数类型。
    8ToInt32 把类型转换为 32 位整数类型。
    9ToInt64 把类型转换为 64 位整数类型。
    10ToSbyte 把类型转换为有符号字节类型。
    11ToSingle 把类型转换为小浮点数类型。
    12ToString把类型转换为字符串类型。
    13ToType 把类型转换为指定类型。
    14ToUInt16 把类型转换为 16 位无符号整数类型。
    15ToUInt32 把类型转换为 32 位无符号整数类型。
    16ToUInt64 把类型转换为 64 位无符号整数类型。

    这些方法都定义在 System.Convert 类中,使用时需要包含 System 命名空间。它们提供了一种安全的方式来执行类型转换,因为它们可以处理 null值,并且会抛出异常,如果转换不可能进行。

    参考:https://www.runoob.com/csharp/csharp-type-conversion.html

    上面这些都是 Convert 类里面的非静态方法。

    当然,System.Convert 也提供了一些静态的方法可以用。

    • Parse 方法用于将字符串转换为对应的数值类型,如果转换失败会抛出异常。

    • TryParse 方法类似于 Parse,但它不会抛出异常,而是返回一个布尔值指示转换是否成功。

    类型转换重载

    C# 还允许你定义自定义类型转换操作,通过在类型中定义 implicitexplicit 关键字。

    相当于重载,很好理解。

    • 为什么用 static,因为和 this 无关。

    详细的类型转换表格总结:https://www.runoob.com/csharp/csharp-type-conversion.html

    stdin 读数据

    System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。

    一些其他规则

    变量的生命周期

    简单变量的生命周期和CPP一样,不赘述。

    常量

    整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。

    整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。

    这里有一些整数常量的实例:

    以下是各种类型的整数常量的实例:

    参考:https://www.runoob.com/csharp/csharp-constants.html

    一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。这里有一些浮点常量的实例:

    字符常量里面转义字符那些,和其他语言基本相同。

    字符串常量:字符串常量是括在双引号 "" 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似。

    定义常量:

    Note

    注意:类内常字段用类名访问,而不是用实例化后对象进行访问。

    运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下:

    • 算术运算符

    • 关系运算符

    • 逻辑运算符

    • 位运算符

    • 赋值运算符

    • 其他运算符

    参考:https://www.runoob.com/csharp/csharp-operators.html

    前面五种运算符和CPP相同,不赘述。

    运算符描述实例
    sizeof()返回数据类型的大小sizeof(int),将返回 4.
    typeof()返回 class 的类型typeof(StreamReader);
    &返回变量的地址&a; 将得到变量的实际地址。
    *变量的指针*a; 将指向一个变量。
    ? :条件表达式如果条件为真 ? 则为 X : 否则为 Y,和CPP的一样,三目
    is判断对象是否为某一类型。If( Ford is Car) 检查 Ford 是否是 Car 类的一个对象。
    as强制转换,即使转换失败也不会抛出异常。Object obj = new StringReader("Hello"); StringReader r = obj as StringReader;

    循环

    while, for, do while 和CPP一样。

    foreach循环:类似CPP的for(auto e : v)语句。

    访问限定符和继承

    • public:所有对象都可以访问;

    • private:对象本身在对象内部可以访问;

    • protected:只有该类对象及其子类对象可以访问

    • internal:同一个程序集的对象可以访问;

    • protected internal:访问限于当前程序集或派生自包含类的类型。

    不写默认是private

    protected相关的用于继承,和CPP一样,不赘述。

    方法定义(函数定义)

    前面已经编写很多函数定义了,不赘述,这里介绍前面没有提到的一些规则。

    一个递归调用的例子

    用递归求一个阶乘吧

    输入参数、输入输出参数、输出参数

    这个很好理解,一个优秀的C++工程师在设计三种参数的时候都有讲究,比如:

    第一个是输入参数,必须带上const,这是优秀的编码习惯,第二个是输入输出参数,第三种是输出参数,一般用指针来写,这种规范是一定要在编码中体现出来的。

    对应C#:

    ref表示传引用,out表示纯输出参数。

    Note

    在 C++ 和 C# 中,参数传递的机制和关键字使用存在一些显著的差异,特别是关于引用和 const 的使用。这些差异主要源于两种语言在设计哲学和运行时行为上的不同。

    C++ 中的 const 和引用

    在 C++ 中,const 关键字和引用 (&) 被广泛用于参数传递,主要原因是:

    • 性能优化:通过传递引用来避免复制大型对象,例如 std::string,同时使用 const 保证函数不会修改传入的对象。

    • 确保不可变性const 关键字确保函数内部不能修改输入参数,增加代码的安全性和可预测性。

    C# 中的参数传递

    C# 设计时采用了不同的方法:

    • 引用语义:C# 中的类类型(引用类型)默认就是通过引用传递的,但这是引用的副本,而非对象本身的直接引用。这意味着你可以修改对象的内部状态,但不能修改对象本身的引用。

    • 值类型的传递方式:值类型(如 int, struct 等)默认是通过值传递的,即创建原始数据的副本。如果你需要通过函数修改原始值类型数据,可以使用 refout

    • 不支持 const:C# 没有直接等价于 C++ 中的 const 修饰符。C# 不能声明一个方法的参数为 const,意味着不像在 C++ 中那样在编译时强制禁止修改参数。如果需要保证不修改数据,只能依靠开发者的约定或通过使用不可变对象来实现。

    设计哲学差异

    • 简化语言复杂度:C# 设计时尽可能简化语言特性,避免了 C++ 中的一些复杂性,如指针算术和复杂的引用传递规则。

    • 安全性:C# 强调内存和执行安全,自动内存管理(垃圾收集)减少了直接内存操作的需要,也就减少了 const 和指针的必要性。

    总结来说,虽然 C# 在设计上不支持像 C++ 那样的 const 修饰符或相同的引用传递语义,但它提供了其它机制(如 readonly 修饰符、不可变集合等)来实现类似的目标。C# 的设计选择更强调简洁性和安全性,虽然这导致了一些灵活性的牺牲。

    可空类型 Nullable

    简单说明:? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。

    ?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值。

    Tip

    int? i = 3; 等同于 Nullable<int> i = new Nullable<int>(3);

    ?的用法:

    ??的用法:

    简单来说就是,如果为null则返回预设值,否则返回原有的非null值。

    数组

    常规数组

    数组下标从0开始,其他规则基本和C++相同,直接看例子。

    多维数组:

    交错数组:

    本质:数组的数组

    可以声明:

    声明不会创建空间,需要手动new

    另一种初始化的方式:

    参考:https://www.runoob.com/csharp/csharp-jagged-arrays.html

    交错数组需要两层foreach来访问。

    数组作为函数参数

    和C++/C相同,数组名为首元素地址(说法不准确,但可以这样理解)

    直接看例子就行了

    所以是不需要传递数组的大小的。

    参数数组(可变参数)

    在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以传递一组数组元素。

    例子:

    Note

    params参数必须是最后一个参数。

    这种操作是合法的。

    Array基类

    Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array类提供了各种用于数组的属性和方法。

    下表列出了 Array 类中一些最常用的属性:

    序号属性 & 描述
    1IsFixedSize 获取一个值,该值指示数组是否带有固定大小。
    2IsReadOnly 获取一个值,该值指示数组是否只读。
    3Length 获取一个 32 位整数,该值表示所有维度的数组中的元素总数。
    4LongLength 获取一个 64 位整数,该值表示所有维度的数组中的元素总数。
    5Rank 获取数组的秩(维度)。

    如需了解 Array 类的完整的属性列表,请参阅微软的 C# 文档。

    下表列出了 Array 类中一些最常用的方法:

    序号方法 & 描述
    1Clear 根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
    2Copy(Array, Array, Int32) 从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
    3CopyTo(Array, Int32) 从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
    4GetLength 获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
    5GetLongLength 获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
    6GetLowerBound 获取数组中指定维度的下界。
    7GetType 获取当前实例的类型。从对象(Object)继承。
    8GetUpperBound 获取数组中指定维度的上界。
    9GetValue(Int32) 获取一维数组中指定位置的值。索引由一个 32 位整数指定。
    10IndexOf(Array, Object) 搜索指定的对象,返回整个一维数组中第一次出现的索引。
    11Reverse(Array) 逆转整个一维数组中元素的顺序。
    12SetValue(Object, Int32) 给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
    13Sort(Array) 使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
    14ToString 返回一个表示当前对象的字符串。从对象(Object)继承。

    如需了解 Array 类的完整的方法列表,请参阅微软的 C# 文档。

    文字来自:https://www.runoob.com/csharp/csharp-array-class.html

    这里用了一个 lambda 表达式。

    在 C# 中,如果想对数组进行排序并使用自定义的比较方法,可以使用 Array.Sort<T> 方法的几种重载之一,这些重载方法允许你指定比较器。可以通过实现 IComparer<T> 接口或使用 Comparison<T> 委托来定义自定义比较逻辑。

    写一个 MyCompare 函数。

    上面这个是实现一个Compare函数,其实本质和lambda表达式的是一样的。当然这里我用if, else, 其实C#给我们内置好了,用CompareTo方法就行,和上面是等价的。

    Note

    注意:实现的 MyCompare 函数是需要 int 返回值的。

    这里要注意,思想和C++是一样的。

    Array.Sort()都是设置从“小”到“大”排列,这个大/小如何定义是可以设置的

    如果MyCompare(x, y)返回的是负整数,表示 x < y;

    如果MyCompare(x, y)返回的是0,表示 x = y;

    如果MyCompare(x, y)返回的是正整数,表示 x > y;

    需要创建一个实现 IComparer<int> 接口的类,然后在该类中实现 Compare类。

    Caution

    类里的函数名必须为Compare(T x, T y)

    这是因为 IComparer<T> 接口规定了一个具体的方法签名,必须遵循这个签名来实现比较逻辑。

    另外需要注意:这里要和C++区分开来,C++也可以用类或者函数来当仿函数

    • 用类在C++里是需要带括号的,然后类内重载对比操作符 operator<operator==等。

    • 用函数在C++里不用带括号,函数参数和C#一样,有要求,函数返回值是 bool 类型。

    String类型

    构造

    在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。

    可以使用以下方法之一来创建 string 对象:

    • 通过给 string 变量指定一个字符串

    • 通过使用 string 类构造函数

    • 通过使用字符串串联运算符( + )

    • 通过检索属性或调用一个返回字符串的方法

    • 通过格式化方法来转换一个值或对象为它的字符串表示形式

    输出:

    属性

    序号属性名称 & 描述
    1Chars 在当前 String 对象中获取 Char 对象的指定位置。
    2Length 在当前的 String 对象中获取字符数。

    常用方法介绍

    此部分参考: https://www.runoob.com/csharp/csharp-string.html

    比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。

    如果布尔参数为真时,该方法不区分大小写。

    连接若干个字符串。

    返回一个表示指定 string 对象是否出现在字符串中的值。

    创建一个与指定字符串具有相同值的新的 String 对象

    从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。

    判断 string 对象的结尾/开头是否匹配指定的字符串。

    判断两个字符串是否相同。

    把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

    返回指定字符/字符串第一次出现的索引,索引从 0 开始,也可以指定。

    返回char数组中任意字符/字符串第一次出现的索引,索引从 0 开始,也可以指定。

    返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。

    指示指定的字符串是否为 null 或者是否为一个空的字符串。

    1. 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。

    2. 连接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。

    返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

    移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止或指定数量。

    替换字符/字符串。

    返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

    字符串转字符数组。

    大小写转换。

    移除当前 String 对象中的所有前导空白字符和后置空白字符。

    示例代码如下所示:

    Struct 封装

    简单使用

    直接先放一个使用的例子,和C++的简单使用是相同的。

    struct vs class

    参考:https://www.runoob.com/csharp/csharp-struct.html

    struct的一些特点:

    • 结构可以定义构造函数,但不能定义析构函数。不能给结构定义无参构造函数,无参构造函数是默认自动定义的。

    • 结构里可以实现一个或者多个接口

    • 结构成员不能被指定为 abstract, virtual, protected

    • 当使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。但是如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

    struct vs class :

    • 结构是值类型,在栈上。结构赋值给另一个变量的时候,是深拷贝。类是引用类型,在堆上。类赋值的时候如果不调用拷贝构造,则是浅拷贝。

    • 结构不支持继承和多态,但类可以。

    • 结构不能有无参数的构造函数: 结构不能包含无参数的构造函数。每个结构都必须有至少一个有参数的构造函数。类可以有无参数的构造函数: 类可以包含无参数的构造函数,如果没有提供构造函数,系统会提供默认的无参数构造函数。

    • 结构体是值类型,不能直接设置为 null:因为 null 是引用类型的默认值,而不是值类型的默认值。如果需要表示结构体变量的缺失或无效状态,可以使用 Nullable<T> 或称为 T? 的可空类型。

    枚举类型

    枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0

    例如:

    基本介绍

    前面已经使用到很多类了,这里不赘述上面有的知识点。

    Tip

    类的默认访问标识符是 internal,成员的默认访问标识符是 private

    构造和析构

    和C++基本相同,不赘述。

    静态成员

    无论实例化多少个类,静态成员只有一个副本。

    const 字段一样用类名访问。

    继承和多态

    和C++基本一致,不赘述概念和规则了。

    这里放一个函数重写的例子吧。

    运算符重载

    概念和C++的是相同的,这里放一些例子。

    Tip

    想让自定义类型支持 Console.WriteLine() 输出,就要重载一个 string ToString() 方法。

    这个和C++中的 ostream& operator<<() 是同一个道理。

    接口 Interface

    参考:https://www.runoob.com/csharp/csharp-interface.html

    接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。

    接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。

    接口使得实现接口的类或结构在形式上保持一致。

    抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。

    接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。

    抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。

    这个在这里不展开了,感觉用的比较少,具体可见:https://www.runoob.com/csharp/csharp-interface.html

    命名空间

    思想和C++是相同的。不展开

    预处理

    基本和C/C++相同,与 C 和 C++ 不同的是,它们不是用来创建宏。一个预处理器指令必须是该行上的唯一指令。

    预处理指令含义
    #define定义一个符号,可以用于条件编译。
    #undef取消定义一个符号。
    #if开始一个条件编译块,如果符号被定义则包含代码块。
    #elif如果前面的 #if#elif 条件不满足,且当前条件满足,则包含代码块。
    #else如果前面的 #if#elif 条件不满足,则包含代码块。
    #endif结束一个条件编译块。
    #warning生成编译器警告信息。
    #error生成编译器错误信息。
    #region标记一段代码区域,可以在IDE中折叠和展开这段代码,便于代码的组织和阅读。
    #endregion结束一个代码区域。
    #line更改编译器输出中的行号和文件名,可以用于调试或生成工具的代码。
    #pragma用于给编译器发送特殊指令,例如禁用或恢复特定的警告。
    #nullable控制可空性上下文和注释,允许启用或禁用对可空引用类型的编译器检查。

    参考自:https://www.runoob.com/csharp/csharp-preprocessor-directives.html

    异常处理

    四个关键字。

    • try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。

    • catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。

    • finallyfinally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。

    • throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。

    异常处理机制和C++基本相同,C#中的异常类也是派生出来的,和C++思想是相同的

    文件处理

    略,这里不赘述了,使用的时候直接看文档即可。

    System.Collections容器

    这一部分参考:https://gitee.com/chutianshu1981/AwesomeUnityTutorial/

    其实就是 C# 版本的STL。

    System.Collections 包含非泛型容器类

    System.Collections.Generic 包含泛型容器类

    .NET Framework 4 起,System.Collections.Concurrent 命名空间中的集合可提供高效的线程安全操作,以便从多个线程访问集合项。 System.Collections.Immutable 命名空间(NuGet 包)中的不可变集合类本质上就是线程安全的,因为操作在原始集合的副本上进行且不能修改原始集合。

    很多容器和方法和C++是同样思想的,都是数据结构的封装,使用的区别有但不大。

    具体可以见代码 src/Lesson5.cs

     

    +

    rookie-csharp

    学习入门csharp的记录

    参考: https://www.runoob.com/csharp/csharp-tutorial.html

    Tip

    • C#的构想很接近C++,但是它和JAVA更相似,因为我是写C++比较多,所以这个记录会记录我对C#的,从C++角度的一些理解。

    • 如果想通过本文档学习了解C#,需要先熟练编写C++代码,理解面向对象编程思想。

    • 本文档提供简单入门,深入了解需要通过项目来学习,通过本文档是不够的。

    环境

    简单入门

    首先我用的目录结构:

    src 里面是每一章节的代码 Lessonx.cs

    Main.cs:

    然后在Src/Lesson1.cs里定义一些类和接口。

    先来打印一个hello world.

    程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句, 相当于C++的 using namespace std;

    后面Test1就是一个函数了,和C++一样,如果不是static方法,需要创建对象才能调用,如果是static方法,可以直接通过类名调用。

    就是打印语句,Console是System命名空间的,要包含上才能用。

    是针对于VSStudio的,防止命令行快速闪退。

    Note

    • C# 是大小写敏感的。

    • 所有的语句和表达式必须以分号(;)结尾。

    • 程序的执行从 Main 方法开始。

    • 与 Java 不同的是,文件名可以不同于类的名称。

    编写一个简单的类

    只要会一门面向对象语言其实上面的代码都是很好懂的。

    Tip

    • 构造函数要带上public不然外面访问不到(细节还没学,后面会详细学)

    • 和C++一样,如果显示编写了构造函数,默认构造就不会自动构造,需要提供无参的构造,不然就不能用new Circle()来构造。

    • 如果不初始化字段,会调用自己的构造函数。上面的int就会默认构造为0。

    顶级语句

    一句话:可以想像写Python一样写。

    特点:

    • 无需类或方法:顶级语句允许你直接在文件的顶层编写代码,无需定义类或方法。

    • 文件作为入口点:包含顶级语句的文件被视为程序的入口点,类似于 C# 之前的 Main 方法。

    • 自动 Main 方法:编译器会自动生成一个 Main 方法,并将顶级语句作为 Main 方法的主体。

    • 支持局部函数:尽管不需要定义类,但顶级语句的文件中仍然可以定义局部函数。

    • 更好的可读性:对于简单的脚本或工具,顶级语句提供了更好的可读性和简洁性。

    • 适用于小型项目:顶级语句非常适合小型项目或脚本,可以快速编写和运行代码。

    • 与现有代码兼容:顶级语句可以与现有的 C# 代码库一起使用,不会影响现有代码。

    Warning

    • 文件限制:顶级语句只能在一个源文件中使用。如果在一个项目中有多个使用顶级语句的文件,会导致编译错误。

    • 程序入口:如果使用顶级语句,则该文件会隐式地包含 Main 方法,并且该文件将成为程序的入口点。

    • 作用域限制:顶级语句中的代码共享一个全局作用域,这意味着可以在顶级语句中定义的变量和方法可以在整个文件中访问。

    • varauto一样,推导类型

    • Console.WriteLine("a: {0}, b:{1}, a+b:{2}", a, b, a + b);就是可变参数,跟printf一个道理,012表示第123个参数,看例子就能懂

    • 可以像C++一样用条件编译

    类型

    值类型

    通过程序运行结果就可以得出每一种变量的默认值和变量的空间占的大小。

    变量的范围: https://www.runoob.com/csharp/csharp-data-types.html

    浅拷贝还是深拷贝

    类是浅拷贝。

    为了深拷贝,首先需要提供拷贝构造,和cpp一样

    然后需要显示调用拷贝构造才能构造新对象。

    Caution

    Circle c2 = c1; // 就算有拷贝构造,这个也是浅拷贝,不同于C++

    引用类型

    引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

    换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的引用类型有:objectdynamicstring

    对象(Object)类型

    对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

    当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱

    动态(Dynamic)类型

    您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

    声明动态类型的语法:

    例如:

    动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

    字符串(String)类型

    字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

    C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待。

    用户自定义引用类型有:class、interface 或 delegate。

    参考: https://www.runoob.com/csharp/csharp-data-types.html

    • String是只读的

    • String str2 = str;是浅拷贝

    • Console.WriteLine("str addr: {0}, {1}", &str, &str2); // error是非法操作, C#是高级的安全语言,不能访问地址,如果要判断是不是同一个引用,可以用 Object.ReferenceEquals

    • Console.WriteLine(Object.ReferenceEquals(str, str2));可以判断两个变量是不是指向同一个对象

    • StringBuilder是可变字符串对象

    • StringBuilder mutable_str2 = new StringBuilder(mutable_str.ToString()); // deepcopy 是深拷贝

    • StringBuilder mutable_str2 = mutable_str; // reference 是引用

    指针类型

    后续说明


    下面代码在Lesson2.cs中。

    类型转换

    隐式和显式

    C#中有两种类型转换:隐式和显式,和CPP一样的,很好理解。

    显示就是强转,强转可能会导致丢失数据,这个也很好理解,不赘述。

    类型转换方法

    序号内置方法
    1ToBoolean 如果可能的话,把类型转换为布尔型。
    2ToByte 把类型转换为字节类型。
    3ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。
    4ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。
    5ToDecimal 把浮点型或整数类型转换为十进制类型。
    6ToDouble 把类型转换为双精度浮点型。
    7ToInt16 把类型转换为 16 位整数类型。
    8ToInt32 把类型转换为 32 位整数类型。
    9ToInt64 把类型转换为 64 位整数类型。
    10ToSbyte 把类型转换为有符号字节类型。
    11ToSingle 把类型转换为小浮点数类型。
    12ToString把类型转换为字符串类型。
    13ToType 把类型转换为指定类型。
    14ToUInt16 把类型转换为 16 位无符号整数类型。
    15ToUInt32 把类型转换为 32 位无符号整数类型。
    16ToUInt64 把类型转换为 64 位无符号整数类型。

    这些方法都定义在 System.Convert 类中,使用时需要包含 System 命名空间。它们提供了一种安全的方式来执行类型转换,因为它们可以处理 null值,并且会抛出异常,如果转换不可能进行。

    参考:https://www.runoob.com/csharp/csharp-type-conversion.html

    上面这些都是 Convert 类里面的非静态方法。

    当然,System.Convert 也提供了一些静态的方法可以用。

    • Parse 方法用于将字符串转换为对应的数值类型,如果转换失败会抛出异常。

    • TryParse 方法类似于 Parse,但它不会抛出异常,而是返回一个布尔值指示转换是否成功。

    类型转换重载

    C# 还允许你定义自定义类型转换操作,通过在类型中定义 implicitexplicit 关键字。

    相当于重载,很好理解。

    • 为什么用 static,因为和 this 无关。

    详细的类型转换表格总结:https://www.runoob.com/csharp/csharp-type-conversion.html

    stdin 读数据

    System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。

    一些其他规则

    变量的生命周期

    简单变量的生命周期和CPP一样,不赘述。

    常量

    整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。

    整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。

    这里有一些整数常量的实例:

    以下是各种类型的整数常量的实例:

    参考:https://www.runoob.com/csharp/csharp-constants.html

    一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。这里有一些浮点常量的实例:

    字符常量里面转义字符那些,和其他语言基本相同。

    字符串常量:字符串常量是括在双引号 "" 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似。

    定义常量:

    Note

    注意:类内常字段用类名访问,而不是用实例化后对象进行访问。

    运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下:

    • 算术运算符

    • 关系运算符

    • 逻辑运算符

    • 位运算符

    • 赋值运算符

    • 其他运算符

    参考:https://www.runoob.com/csharp/csharp-operators.html

    前面五种运算符和CPP相同,不赘述。

    运算符描述实例
    sizeof()返回数据类型的大小sizeof(int),将返回 4.
    typeof()返回 class 的类型typeof(StreamReader);
    &返回变量的地址&a; 将得到变量的实际地址。
    *变量的指针*a; 将指向一个变量。
    ? :条件表达式如果条件为真 ? 则为 X : 否则为 Y,和CPP的一样,三目
    is判断对象是否为某一类型。If( Ford is Car) 检查 Ford 是否是 Car 类的一个对象。
    as强制转换,即使转换失败也不会抛出异常。Object obj = new StringReader("Hello"); StringReader r = obj as StringReader;

    循环

    while, for, do while 和CPP一样。

    foreach循环:类似CPP的for(auto e : v)语句。

    访问限定符和继承

    • public:所有对象都可以访问;

    • private:对象本身在对象内部可以访问;

    • protected:只有该类对象及其子类对象可以访问

    • internal:同一个程序集的对象可以访问;

    • protected internal:访问限于当前程序集或派生自包含类的类型。

    不写默认是private

    protected相关的用于继承,和CPP一样,不赘述。

    方法定义(函数定义)

    前面已经编写很多函数定义了,不赘述,这里介绍前面没有提到的一些规则。

    一个递归调用的例子

    用递归求一个阶乘吧

    输入参数、输入输出参数、输出参数

    这个很好理解,一个优秀的C++工程师在设计三种参数的时候都有讲究,比如:

    第一个是输入参数,必须带上const,这是优秀的编码习惯,第二个是输入输出参数,第三种是输出参数,一般用指针来写,这种规范是一定要在编码中体现出来的。

    对应C#:

    ref表示传引用,out表示纯输出参数。

    Note

    在 C++ 和 C# 中,参数传递的机制和关键字使用存在一些显著的差异,特别是关于引用和 const 的使用。这些差异主要源于两种语言在设计哲学和运行时行为上的不同。

    C++ 中的 const 和引用

    在 C++ 中,const 关键字和引用 (&) 被广泛用于参数传递,主要原因是:

    • 性能优化:通过传递引用来避免复制大型对象,例如 std::string,同时使用 const 保证函数不会修改传入的对象。

    • 确保不可变性const 关键字确保函数内部不能修改输入参数,增加代码的安全性和可预测性。

    C# 中的参数传递

    C# 设计时采用了不同的方法:

    • 引用语义:C# 中的类类型(引用类型)默认就是通过引用传递的,但这是引用的副本,而非对象本身的直接引用。这意味着你可以修改对象的内部状态,但不能修改对象本身的引用。

    • 值类型的传递方式:值类型(如 int, struct 等)默认是通过值传递的,即创建原始数据的副本。如果你需要通过函数修改原始值类型数据,可以使用 refout

    • 不支持 const:C# 没有直接等价于 C++ 中的 const 修饰符。C# 不能声明一个方法的参数为 const,意味着不像在 C++ 中那样在编译时强制禁止修改参数。如果需要保证不修改数据,只能依靠开发者的约定或通过使用不可变对象来实现。

    设计哲学差异

    • 简化语言复杂度:C# 设计时尽可能简化语言特性,避免了 C++ 中的一些复杂性,如指针算术和复杂的引用传递规则。

    • 安全性:C# 强调内存和执行安全,自动内存管理(垃圾收集)减少了直接内存操作的需要,也就减少了 const 和指针的必要性。

    总结来说,虽然 C# 在设计上不支持像 C++ 那样的 const 修饰符或相同的引用传递语义,但它提供了其它机制(如 readonly 修饰符、不可变集合等)来实现类似的目标。C# 的设计选择更强调简洁性和安全性,虽然这导致了一些灵活性的牺牲。

    可空类型 Nullable

    简单说明:? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。

    ?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值。

    Tip

    int? i = 3; 等同于 Nullable<int> i = new Nullable<int>(3);

    ?的用法:

    ??的用法:

    简单来说就是,如果为null则返回预设值,否则返回原有的非null值。

    数组

    常规数组

    数组下标从0开始,其他规则基本和C++相同,直接看例子。

    多维数组:

    交错数组:

    本质:数组的数组

    可以声明:

    声明不会创建空间,需要手动new

    另一种初始化的方式:

    参考:https://www.runoob.com/csharp/csharp-jagged-arrays.html

    交错数组需要两层foreach来访问。

    数组作为函数参数

    和C++/C相同,数组名为首元素地址(说法不准确,但可以这样理解)

    直接看例子就行了

    所以是不需要传递数组的大小的。

    参数数组(可变参数)

    在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以传递一组数组元素。

    例子:

    Note

    params参数必须是最后一个参数。

    这种操作是合法的。

    Array基类

    Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array类提供了各种用于数组的属性和方法。

    下表列出了 Array 类中一些最常用的属性:

    序号属性 & 描述
    1IsFixedSize 获取一个值,该值指示数组是否带有固定大小。
    2IsReadOnly 获取一个值,该值指示数组是否只读。
    3Length 获取一个 32 位整数,该值表示所有维度的数组中的元素总数。
    4LongLength 获取一个 64 位整数,该值表示所有维度的数组中的元素总数。
    5Rank 获取数组的秩(维度)。

    如需了解 Array 类的完整的属性列表,请参阅微软的 C# 文档。

    下表列出了 Array 类中一些最常用的方法:

    序号方法 & 描述
    1Clear 根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
    2Copy(Array, Array, Int32) 从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
    3CopyTo(Array, Int32) 从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
    4GetLength 获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
    5GetLongLength 获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
    6GetLowerBound 获取数组中指定维度的下界。
    7GetType 获取当前实例的类型。从对象(Object)继承。
    8GetUpperBound 获取数组中指定维度的上界。
    9GetValue(Int32) 获取一维数组中指定位置的值。索引由一个 32 位整数指定。
    10IndexOf(Array, Object) 搜索指定的对象,返回整个一维数组中第一次出现的索引。
    11Reverse(Array) 逆转整个一维数组中元素的顺序。
    12SetValue(Object, Int32) 给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
    13Sort(Array) 使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
    14ToString 返回一个表示当前对象的字符串。从对象(Object)继承。

    如需了解 Array 类的完整的方法列表,请参阅微软的 C# 文档。

    文字来自:https://www.runoob.com/csharp/csharp-array-class.html

    这里用了一个 lambda 表达式。

    在 C# 中,如果想对数组进行排序并使用自定义的比较方法,可以使用 Array.Sort<T> 方法的几种重载之一,这些重载方法允许你指定比较器。可以通过实现 IComparer<T> 接口或使用 Comparison<T> 委托来定义自定义比较逻辑。

    写一个 MyCompare 函数。

    上面这个是实现一个Compare函数,其实本质和lambda表达式的是一样的。当然这里我用if, else, 其实C#给我们内置好了,用CompareTo方法就行,和上面是等价的。

    Note

    注意:实现的 MyCompare 函数是需要 int 返回值的。

    这里要注意,思想和C++是一样的。

    Array.Sort()都是设置从“小”到“大”排列,这个大/小如何定义是可以设置的

    如果MyCompare(x, y)返回的是负整数,表示 x < y;

    如果MyCompare(x, y)返回的是0,表示 x = y;

    如果MyCompare(x, y)返回的是正整数,表示 x > y;

    需要创建一个实现 IComparer<int> 接口的类,然后在该类中实现 Compare类。

    Caution

    类里的函数名必须为Compare(T x, T y)

    这是因为 IComparer<T> 接口规定了一个具体的方法签名,必须遵循这个签名来实现比较逻辑。

    另外需要注意:这里要和C++区分开来,C++也可以用类或者函数来当仿函数

    • 用类在C++里是需要带括号的,然后类内重载对比操作符 operator<operator==等。

    • 用函数在C++里不用带括号,函数参数和C#一样,有要求,函数返回值是 bool 类型。

    String类型

    构造

    在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。

    可以使用以下方法之一来创建 string 对象:

    • 通过给 string 变量指定一个字符串

    • 通过使用 string 类构造函数

    • 通过使用字符串串联运算符( + )

    • 通过检索属性或调用一个返回字符串的方法

    • 通过格式化方法来转换一个值或对象为它的字符串表示形式

    输出:

    属性

    序号属性名称 & 描述
    1Chars 在当前 String 对象中获取 Char 对象的指定位置。
    2Length 在当前的 String 对象中获取字符数。

    常用方法介绍

    此部分参考: https://www.runoob.com/csharp/csharp-string.html

    比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。

    如果布尔参数为真时,该方法不区分大小写。

    连接若干个字符串。

    返回一个表示指定 string 对象是否出现在字符串中的值。

    创建一个与指定字符串具有相同值的新的 String 对象

    从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。

    判断 string 对象的结尾/开头是否匹配指定的字符串。

    判断两个字符串是否相同。

    把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

    返回指定字符/字符串第一次出现的索引,索引从 0 开始,也可以指定。

    返回char数组中任意字符/字符串第一次出现的索引,索引从 0 开始,也可以指定。

    返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。

    指示指定的字符串是否为 null 或者是否为一个空的字符串。

    1. 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。

    2. 连接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。

    返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

    移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止或指定数量。

    替换字符/字符串。

    返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

    字符串转字符数组。

    大小写转换。

    移除当前 String 对象中的所有前导空白字符和后置空白字符。

    示例代码如下所示:

    Struct 封装

    简单使用

    直接先放一个使用的例子,和C++的简单使用是相同的。

    struct vs class

    参考:https://www.runoob.com/csharp/csharp-struct.html

    struct的一些特点:

    • 结构可以定义构造函数,但不能定义析构函数。不能给结构定义无参构造函数,无参构造函数是默认自动定义的。

    • 结构里可以实现一个或者多个接口

    • 结构成员不能被指定为 abstract, virtual, protected

    • 当使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。但是如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

    struct vs class :

    • 结构是值类型,在栈上。结构赋值给另一个变量的时候,是深拷贝。类是引用类型,在堆上。类赋值的时候如果不调用拷贝构造,则是浅拷贝。

    • 结构不支持继承和多态,但类可以。

    • 结构不能有无参数的构造函数: 结构不能包含无参数的构造函数。每个结构都必须有至少一个有参数的构造函数。类可以有无参数的构造函数: 类可以包含无参数的构造函数,如果没有提供构造函数,系统会提供默认的无参数构造函数。

    • 结构体是值类型,不能直接设置为 null:因为 null 是引用类型的默认值,而不是值类型的默认值。如果需要表示结构体变量的缺失或无效状态,可以使用 Nullable<T> 或称为 T? 的可空类型。

    枚举类型

    枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0

    例如:

    基本介绍

    前面已经使用到很多类了,这里不赘述上面有的知识点。

    Tip

    类的默认访问标识符是 internal,成员的默认访问标识符是 private

    构造和析构

    和C++基本相同,不赘述。

    静态成员

    无论实例化多少个类,静态成员只有一个副本。

    const 字段一样用类名访问。

    继承和多态

    和C++基本一致,不赘述概念和规则了。

    这里放一个函数重写的例子吧。

    运算符重载

    概念和C++的是相同的,这里放一些例子。

    Tip

    想让自定义类型支持 Console.WriteLine() 输出,就要重载一个 string ToString() 方法。

    这个和C++中的 ostream& operator<<() 是同一个道理。

    接口 Interface

    参考:https://www.runoob.com/csharp/csharp-interface.html

    接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。

    接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。

    接口使得实现接口的类或结构在形式上保持一致。

    抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。

    接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。

    抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。

    这个在这里不展开了,感觉用的比较少,具体可见:https://www.runoob.com/csharp/csharp-interface.html

    命名空间

    思想和C++是相同的。不展开

    预处理

    基本和C/C++相同,与 C 和 C++ 不同的是,它们不是用来创建宏。一个预处理器指令必须是该行上的唯一指令。

    预处理指令含义
    #define定义一个符号,可以用于条件编译。
    #undef取消定义一个符号。
    #if开始一个条件编译块,如果符号被定义则包含代码块。
    #elif如果前面的 #if#elif 条件不满足,且当前条件满足,则包含代码块。
    #else如果前面的 #if#elif 条件不满足,则包含代码块。
    #endif结束一个条件编译块。
    #warning生成编译器警告信息。
    #error生成编译器错误信息。
    #region标记一段代码区域,可以在IDE中折叠和展开这段代码,便于代码的组织和阅读。
    #endregion结束一个代码区域。
    #line更改编译器输出中的行号和文件名,可以用于调试或生成工具的代码。
    #pragma用于给编译器发送特殊指令,例如禁用或恢复特定的警告。
    #nullable控制可空性上下文和注释,允许启用或禁用对可空引用类型的编译器检查。

    参考自:https://www.runoob.com/csharp/csharp-preprocessor-directives.html

    异常处理

    四个关键字。

    • try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。

    • catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。

    • finallyfinally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。

    • throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。

    异常处理机制和C++基本相同,C#中的异常类也是派生出来的,和C++思想是相同的

    文件处理

    略,这里不赘述了,使用的时候直接看文档即可。

    System.Collections容器

    这一部分参考:https://gitee.com/chutianshu1981/AwesomeUnityTutorial/

    其实就是 C# 版本的STL。

    System.Collections 包含非泛型容器类

    System.Collections.Generic 包含泛型容器类

    .NET Framework 4 起,System.Collections.Concurrent 命名空间中的集合可提供高效的线程安全操作,以便从多个线程访问集合项。 System.Collections.Immutable 命名空间(NuGet 包)中的不可变集合类本质上就是线程安全的,因为操作在原始集合的副本上进行且不能修改原始集合。

    很多容器和方法和C++是同样思想的,都是数据结构的封装,使用的区别有但不大。

    具体可以见代码 src/Lesson5.cs

    C# 版本的八大排序

    具体见代码。

    于此同时还提供了八大排序的性能测试结果,如图所示。

    这个结果也是符合预期的。

    \ No newline at end of file diff --git a/main.cs b/main.cs index 2002d68..8b1bd3a 100644 --- a/main.cs +++ b/main.cs @@ -20,8 +20,7 @@ class Run { static void Main(string[] args) { - Lesson5 t = new Lesson5(); - t.Test2(); + PerformanceTest.RunPerformanceTests(100); } } } \ No newline at end of file diff --git a/obj/Debug/net8.0/apphost.exe b/obj/Debug/net8.0/apphost.exe index 02419625c5e3681da726d39649f602b530fdaa6a..53dd3bd98606d3395a579bfead28107f9f8e3535 100644 GIT binary patch delta 99 zcmZozz|jCiEsR^340!#G7|a+fz&Me?k|Bk`oBLyc7mQ1{0t>NG_Ej3CK2L dNMkT%NCxr@!0OU~>QcdKEJ5Vh#8CaDCke3LQF<>wULJOb@BL>6m^}I}tOaOqH5NH4Z diff --git a/obj/Debug/net8.0/ref/rookie-csharp.dll b/obj/Debug/net8.0/ref/rookie-csharp.dll new file mode 100644 index 0000000000000000000000000000000000000000..a668acb3730aff535d44e77c656bc7b704b9671f GIT binary patch literal 10752 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 G@IL`!CJVX% literal 0 HcmV?d00001 diff --git a/obj/Debug/net8.0/rookie-csharp.genruntimeconfig.cache b/obj/Debug/net8.0/rookie-csharp.genruntimeconfig.cache new file mode 100644 index 0000000..7da39f4 --- /dev/null +++ b/obj/Debug/net8.0/rookie-csharp.genruntimeconfig.cache @@ -0,0 +1 @@ +1cc6f76e0cae19c2925461be4b194fe314f6e987c695451739c60559ff8b9057 diff --git a/obj/Debug/net8.0/rookie-csharp.pdb b/obj/Debug/net8.0/rookie-csharp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4f853b217d4743eadb059451f4f409aff6ee951f GIT binary patch literal 22280 zcmd74cU)9Q7e74rvg|HZilSme#eyOo1VyC^C}6=FF}N&?uEH+vE+QIr7c{omTkO4H z@4Y3)6dx0lXcCjCQKKd%MorP^W1jea&)mDPD#`o4zrTKdoVoYR%qer`%$YN@%uUMa zkt8sI(LZ;j-YH1|W5PqicmY$gH}Fz~)UtO$K9&85)Xy96M8@KM0El?cv6%FR;by9j zugjPM&zAjjSOVUy^q$r~BL&aXfYXxzClwiq*xY50uCK1RmbK%`^r|YCRm0uBk6M<_ zm~!B1v8{_I<5Kk^e56pMQY3;&+8szvNRdcNq)tdpkzA3eo@DStqPoUN^bev+9c8e`8dvdq;X# zv7;STY-p_XK0a2(K11pjr(&m(dUsN>%}9+qt5_ydF;cg96&r!{5mM_e65f3N6qs8# zf}yo;B1=ZnB2^+S;pI+jOE)KW66pfc^==CG11~2W`lnz|x;eAwNd5@~JG1r)&MZQH zPnMtkuvqCC!=KW7SIip`)*zXb zFA8at?Qk?;C%{f}eJPqL04rpe=9DvFwG3wgRsnXGVFO?_U|$(-1=t0!pA3_2y8^B+ z!!$qK05_0f8YF@n0&dRVX?}~$U#<^AnTG?6Da||qH37Z`;W5bs264I1cYkWVk(G6W(dAQu|=QG?xjk3%G-fzY+Q(nC4+2>T=}z zP{8DqXfjZJ7+`0#Z6?FvfH5#ESB4`1rvoNKt%vrJfa#wViQp)}QFu?3;b_9gJIUjR z`WU%AwXwr$yf;FskNS>sJ^7dhfMaF2vjbd5Zr>2~adJJ$>+b;fW&^ zvqSqP4)7S%HwBz1*Z&uAGr*ZLOpgG-17(=#+hLNQCVg|%50dK-18#}&d|ig?0S*M5 zC&O(4w{n180JnC4X*}8h&X?P_1{?%yFOcCF$V0FWZ~*Gao(U%ZIuh?^Wq3H?`FJ0N z)DHC{WcU2x!j({I|T4J2RIb)co}|*dV(hc&cJ(f8J-0AZM?TY3PZhBZcp_QfNe5N>y{m+ z@gV+@@CX%hJvnQFCj-V($m^p4Pm$|Mp9H@NH~{sePlBfcw(FDNX@Kqei~&4d#wUA? z1w2EB`^oT3z|MH5HIVAx0!(8~>uVg~S#tXUGCW&u-&=;~$nE20crIXfyayt60{%Q1 zzrPGG08DEx`9G>(2$*~i&7aPI7s>610FDQ|REEjFbpgCWhHZem0$we{A%MF9UL(Wg zpA!JDli?eH69I3LVbWg`;3^p&1~?h;HW|(XoC0{e44VOW2fRmyhawmu_z++X>gtFR zd>F7E@b7{I9|8Ou>S&D8(etA+zANA!m_K%ybl%eeCV!Oa0CxbKcLYFTptuF!`*0@DFx*$OZ>Fz$D*bhxYXWzvcjw|IKxP$;O8|z#f3}UV=3* z!CD8H=odJ^G+sIf_%*;IFu&~bk`3!I9(I`g!$`o#WPOu<>@bFguO|c_M?K-v{1}C| z6LNbBR0uu^nBq=a(~1C}lIzLd?QmVZw?QgK{b{+ry#q|Tp!L>(`gi1dig8N-pOImb z&*T6%09@(-Q(Q~`A|SkEag0r&j5y6xnmw5Bshv&ZB!%J

    ca&C= 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 M=;>v>-kY)i2MAjK761SM literal 0 HcmV?d00001 diff --git a/obj/Debug/net8.0/rookie-csharp.sourcelink.json b/obj/Debug/net8.0/rookie-csharp.sourcelink.json new file mode 100644 index 0000000..f7333e6 --- /dev/null +++ b/obj/Debug/net8.0/rookie-csharp.sourcelink.json @@ -0,0 +1 @@ +{"documents":{"C:\\Users\\demac\\Desktop\\rookie-csharp\\*":"https://raw.githubusercontent.com/ffengc/rookie-csharp/26868a9d726373dd148a9eb42f5ce063f3e48948/*"}} \ No newline at end of file diff --git a/src/SortMethods.cs b/src/SortMethods.cs new file mode 100644 index 0000000..ef55d5d --- /dev/null +++ b/src/SortMethods.cs @@ -0,0 +1,374 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Diagnostics; +using static SortMethods; + +internal class RandomArrayGenerator +{ + public static int[] GenerateRandomIntArray(int length, int min, int max) + { + Random random = new Random(); + int[] array = new int[length]; + for (int i = 0; i < length; i++) + array[i] = random.Next(min, max); + return array; + } +} +internal class Utils +{ + public static void ShowList(T container) + { + // 处理 IEnumerable 类型的容器,如 List, Stack, Queue + if (container is IEnumerable enumerable) + { + foreach (var item in enumerable) + { + Console.Write(item + " "); + } + } + // 处理 Dictionary 类型的容器 + else if (container is IDictionary dictionary) + { + foreach (DictionaryEntry entry in dictionary) + { + Console.Write($"[{entry.Key}, {entry.Value}] "); + } + } + else + { + Console.WriteLine("Unsupported container type."); + return; + } + Console.WriteLine(); + } + public static void Swap(ref T lhs, ref T rhs) + { + T temp; + temp = lhs; + lhs = rhs; + rhs = temp; + } +} +internal class SortMethods +{ + public static void BubbleSort(int[] arr) + { + int sz = arr.Length; + for (int i = 0; i < sz - 1; i++) + for (int j = 0; j < sz - 1 - i; j++) + if (arr[j] > arr[j + 1]) + Utils.Swap(ref arr[j], ref arr[j + 1]); + } + public static void SelectSort(int[] arr) + { + int sz = arr.Length; + for (int i = 0; i < sz - 1; i++) + { + int min_idx = i; + for(int j = i+ 1; j < sz; j++) + if (arr[j] < arr[min_idx]) + min_idx = j; + Utils.Swap(ref arr[i], ref arr[min_idx]); + } + } + public static void InsertSort(int[] arr) + { + int sz = arr.Length; + int sort_num = 0; + for (int i = 0; i < sz; i++) + { + int j; + sort_num = arr[i]; // the number need to be sort + for(j =i - 1; j>= 0; j--) + { + if (arr[j] < sort_num) break; + arr[j + 1] = arr[j]; + } + arr[j + 1] = sort_num; + } + } + private static void ShellSortInGroup(int[] arr, int pos, int step) + { + // pos+step is the idx of the first element in this group + // and sort this group with insert_sort, same with insert sort + int sort_num = 0; + int i = 0, j = 0; + int sz = arr.Length; + for (i = pos + step; i < sz; i += step) + { + sort_num = arr[i]; + for (j = i - step; j >= 0; j -= step) + { + if (arr[j] < sort_num) break; + arr[j + step] = arr[j]; + } + arr[j + step] = sort_num; + } + } + public static void ShellSort(int[] arr) + { + int i = 0; + int step = 0; + int sz = arr.Length; + // step is the step length, each time it is reduced to half of the original value, + // take an integer, the last one must be 1 + for (step = sz / 2; step > 0; step /= 2) + for (i = 0; i < step; i++) + ShellSortInGroup(arr, i, step); + } + private static int QuickSortPartSort(int[] arr, int begin, int end) + { + int left = begin; + int right = end; + int keyi = left; + while (left < right) + { + // right move first, find smaller + while (left < right && arr[right] >= arr[keyi]) --right; + // left move, find bigger + while (left < right && arr[left] <= arr[keyi]) ++left; + Utils.Swap(ref arr[left], ref arr[right]); + } + Utils.Swap(ref arr[keyi], ref arr[right]); + keyi = left; + return keyi; + } + private static void QuickSortByRange(int[] arr, int begin, int end) + { + // The interval does not exist or has only one value and does not need to be processed anymore + // Quick sort: Get the key right each time, and recursively solve the numbers on both sides of the key + if (begin >= end) return; + int keyi = QuickSortPartSort(arr, begin, end); + QuickSortByRange(arr, begin, keyi - 1); + QuickSortByRange(arr, keyi + 1, end); + } + public static void QuickSort(int[] arr) + { + int begin = 0; int end = arr.Length - 1; + QuickSortByRange(arr, begin, end); + } + private static void MergeSortByRange(int[] arr, int[] temp, int start, int end) + { + Debug.Assert(arr.Length == temp.Length, "arr.Length should equal to temp.Length"); + if (start >= end) return; + int mid = start + (end - start) / 2; // find the mid idx of the array + // cut the array into to parts + int istart1 = start; + int iend1 = mid; + int istart2 = mid + 1; + int iend2 = end; + // both part call the range sort + MergeSortByRange(arr, temp, istart1, iend1); + MergeSortByRange(arr, temp, istart2, iend2); + // merge 2 parts + int i = start; + while (istart1 <= iend1 && istart2 <= iend2) + { + temp[i] = arr[istart1] < arr[istart2] ? arr[istart1++] : arr[istart2++]; + ++i; + } + while (istart1 <= iend1) + { + temp[i] = arr[istart1]; + i++; + istart1++; + } + while (istart2 <= iend2) + { + temp[i] = arr[istart2]; + i++; + istart2++; + } + Array.Copy(temp, start, arr, start, end - start + 1); + } + public static void MergeSort(int[] arr) + { + if (arr.Length < 2) return; + int[] temp = new int[arr.Length]; + MergeSortByRange(arr, temp, 0, arr.Length - 1); + } + private static void HeapSortAdjustDown(int[] arr, int begin, int end) + { + int parent = begin; + int child = parent * 2 + 1; + while(child <= end) + { + if ((child + 1 <= end) && (arr[child] < arr[child + 1])) child++; + if (arr[parent] > arr[child]) return; + Utils.Swap(ref arr[parent], ref arr[child]); + parent = child; + child = parent * 2 + 1; + } + } + public static void HeapSort(int[] arr) + { + int i = 0; + // make_heap + for (i = (arr.Length - 1) / 2; i >= 0; i--) + HeapSortAdjustDown(arr, i, arr.Length - 1); + // swap first element and the last element + for (i = arr.Length - 1; i > 0; i--) + { + Utils.Swap(ref arr[0], ref arr[i]); + HeapSortAdjustDown(arr, 0, i - 1); + } + } + internal class RadixSort + { + private static int K = -1; // Up to three digits + private const int RADIX = 10; // ten radixes + private static Queue[] Q = Enumerable.Range(0, RADIX).Select(_ => new Queue()).ToArray(); // array of queue + private static int GetKey(int val, int k) + { + int key = 0; + while (k >= 0) + { + key = val % 10; + val /= 10; + k--; + } + return key; + } + private static void Distribute(int[] arr, int left, int right, int k) + { + for(int i = left; i < right; i++) + { + int key = GetKey(arr[i], k); + Q[key].Enqueue(arr[i]); + } + } + private static void Collect(int[] arr) + { + /* No need to distinguish the order, just recycle the data into the array + Check all queues, because we don't know which queues have data and which don't */ + int k = 0; + for(int i = 0; i < RADIX; ++i) + while (Q[i].Count > 0) + arr[k++] = Q[i].Dequeue(); + } + private static void SortByRange(int[] arr, int left, int right) + { + Debug.Assert(K > 0, "need to init the K in Sort()"); + for (int i = 0; i < K; ++i) + { + // How many digits are there and how many times are they repeated + // distribute the data + Distribute(arr, left, right, i); // i represents the digit I am currently operating on + // collect the data + Collect(arr); + } + } + private static bool CheckSequenceValidity(int[] arr) + { + /* Radix sorting can generally only process non - negative numbers, + otherwise special preprocessing is required */ + foreach (int number in arr) + if (number < 0) + return false; + return true; + } + public static void Sort(int[] arr, int InputK) + { + K = InputK; + int left = 0; int right = arr.Length; + Debug.Assert(CheckSequenceValidity(arr)); + SortByRange(arr, left, right); + } + } + public static void Run() + { + //int[] arr = new int[] { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 12 }; + int len = 10; + int max = 100; + int min = 0; + int[] arr = RandomArrayGenerator.GenerateRandomIntArray(len, min, max); + int[] sorted_arr = (int[])arr.Clone(); + Array.Sort(sorted_arr); + RadixSort.Sort(arr, 3); // 3 refs to the max digits number of the seq + if (len <= 30) + { + Console.Write("My Sort: "); Utils.ShowList(arr); + Console.Write("Array.Sort: "); Utils.ShowList(sorted_arr); + } + Console.WriteLine(arr.SequenceEqual(sorted_arr)); + } +} +internal class PerformanceTest +{ + public static void RunPerformanceTests(int numberOfTests) + { + int len = 10000; // 可以根据需要调整数组的大小 + int max = 100000; + int min = 0; + Random rnd = new Random(); + // Create an initial array and copy it for different sorting methods + int[] originalArray = Enumerable.Range(0, len).Select(x => rnd.Next(min, max)).ToArray(); + Stopwatch sw = new Stopwatch(); + Console.WriteLine("Running performance tests..."); + // Used to store the total time for each sort + double[] times = new double[8]; // Corresponding to 8 sorting methods + for (int test = 0; test < numberOfTests; test++) + { + int[] tempArray; + // Bubble Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + BubbleSort(tempArray); + sw.Stop(); + times[0] += sw.Elapsed.TotalMilliseconds; + // Select Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + SelectSort(tempArray); + sw.Stop(); + times[1] += sw.Elapsed.TotalMilliseconds; + // Insert Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + InsertSort(tempArray); + sw.Stop(); + times[2] += sw.Elapsed.TotalMilliseconds; + // Shell Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + ShellSort(tempArray); + sw.Stop(); + times[3] += sw.Elapsed.TotalMilliseconds; + // Quick Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + QuickSort(tempArray); + sw.Stop(); + times[4] += sw.Elapsed.TotalMilliseconds; + // Merge Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + MergeSort(tempArray); + sw.Stop(); + times[5] += sw.Elapsed.TotalMilliseconds; + // Heap Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + HeapSort(tempArray); + sw.Stop(); + times[6] += sw.Elapsed.TotalMilliseconds; + // Radix Sort + tempArray = (int[])originalArray.Clone(); + sw.Restart(); + RadixSort.Sort(tempArray, 6); // Assuming 6 digits max for simplicity + sw.Stop(); + times[7] += sw.Elapsed.TotalMilliseconds; + } + // print avg time + string[] sortNames = { "Bubble Sort", "Select Sort", "Insert Sort", "Shell Sort", "Quick Sort", "Merge Sort", "Heap Sort", "Radix Sort" }; + Console.WriteLine($"Average times for {numberOfTests} tests:"); + for (int i = 0; i < times.Length; i++) + { + Console.WriteLine($"{sortNames[i],-12}: {times[i] / numberOfTests} ms"); + } + } +} \ No newline at end of file