ะ’ะธั€ั–ัˆะตะฝะพ: ะพั‚ั€ะธะผะฐั‚ะธ ะผะพะฒัƒ ะŸะš

ะกั‚ะฐั‚ั‚ั ะฟั€ะพ ะผะพะฒัƒ ะŸะš ะฒะธะณะปัะดะฐะปะฐ ะฑ ั‚ะฐะบ:

ะœะพะฒะฐ ะบะพะผะฟโ€™ัŽั‚ะตั€ั–ะฒ ั” ะพัะฝะพะฒะพัŽ ััƒั‡ะฐัะฝะพะณะพ ั†ะธั„ั€ะพะฒะพะณะพ ัะฒั–ั‚ัƒ. ะฉะพะฑ ะฟะพะบั€ะฐั‰ะธั‚ะธ ั€ะพะทัƒะผั–ะฝะฝั ั†ั–ั”ั— ะผะพะฒะธ, ะดะฐะฒะฐะนั‚ะต ะฟะพั‡ะฝะตะผะพ ะณะปะธะฑะพะบะต ะทะฐะฝัƒั€ะตะฝะฝั ัƒ ัะฒั–ั‚ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั, ะพัะพะฑะปะธะฒะพ ะทะพัะตั€ะตะดะธะฒัˆะธััŒ ะฝะฐ C#, ะพะฑโ€™ั”ะบั‚ะฝะพ-ะพั€ั–ั”ะฝั‚ะพะฒะฐะฝั–ะน ะผะพะฒั–, ั€ะพะทั€ะพะฑะปะตะฝั–ะน Microsoft ะดะปั ะฟะปะฐั‚ั„ะพั€ะผะธ .NET.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: ะฒะธะฟะฐะดะบะพะฒะธะน ั–ะฝั‚

ะฉะพะฑ ะทะผะฐะปัŽะฒะฐั‚ะธ ัะบะปะฐะดะฝั–ัั‚ัŒ ั†ัŒะพะณะพ, ะดะฐะฒะฐะนั‚ะต ะฒั–ะทัŒะผะตะผะพ ะฟั€ะธะบะปะฐะด ะณะตะฝะตั€ะฐั†ั–ั— ะฒะธะฟะฐะดะบะพะฒะธั… ั†ั–ะปะธั… ั‡ะธัะตะป ัƒ C#.

ะฃ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั– ะฒะธะฟะฐะดะบะพะฒั– ั‡ะธัะปะฐ ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‚ัŒัั ะดะปั ั€ั–ะทะฝะธั… ั†ั–ะปะตะน, ะฒั–ะด ัั‚ั€ะตั-ั‚ะตัั‚ัƒะฒะฐะฝะฝั ะดะพ ั–ะณะพั€ ั– ะฝะฐัƒะบะพะฒะธั… ะฟั€ะพะตะบั‚ั–ะฒ. ะฃ C# ะบะปะฐั Random ะฝะฐะดะฐั” ั„ัƒะฝะบั†ั–ั— ะดะปั ะณะตะฝะตั€ัƒะฒะฐะฝะฝั ะฒะธะฟะฐะดะบะพะฒะธั… ั‡ะธัะตะป. ะ”ะปั ะฟั€ะธะบะปะฐะดัƒ ะฒั–ะทัŒะผะตะผะพ ะฝะฐัั‚ัƒะฟะฝะธะน ั„ั€ะฐะณะผะตะฝั‚ ะบะพะดัƒ:

Random rand = new Random ();
int randomNumber = rand.Next();

ะะฐะฒะตะดะตะฝะธะน ะฒะธั‰ะต ะบะพะด ัั‚ะฒะพั€ะธั‚ัŒ ะฒะธะฟะฐะดะบะพะฒะต ั†ั–ะปะต ั‡ะธัะปะพ, ัะบะต ะผะพะถะต ะฑัƒั‚ะธ ะฑัƒะดัŒ-ัะบะธะผ ะฒั–ะด 0 ะดะพ Int32.MaxValue.

ะ ะพะทัƒะผั–ะฝะฝั ะฒะธะฟะฐะดะบะพะฒะพะณะพ ะบะปะฐััƒ ะฒ C#

ะšะปะฐั Random ัƒ C# ะทะฝะฐั…ะพะดะธั‚ัŒัั ะฒ ะฟั€ะพัั‚ะพั€ั– ั–ะผะตะฝ System ั– ะผั–ัั‚ะธั‚ัŒ ั‡ะธัะปะตะฝะฝั– ะผะตั‚ะพะดะธ, ัะบั– ะผะพะถะฝะฐ ะฒะธะบะพั€ะธัั‚ะพะฒัƒะฒะฐั‚ะธ ะดะปั ั€ั–ะทะฝะธั… ั†ั–ะปะตะน. ะ”ะปั ะณะตะฝะตั€ะฐั†ั–ั— ะฒะธะฟะฐะดะบะพะฒะธั… ั†ั–ะปะธั… ั‡ะธัะตะป ะฝะฐะนั‡ะฐัั‚ั–ัˆะต ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‚ัŒัั ะผะตั‚ะพะดะธ Next() ั– Next(Int32, Int32).

ะ”ะฐะปั– (Int32, Int32) ะณะตะฝะตั€ัƒั” ะฒะธะฟะฐะดะบะพะฒะต ั†ั–ะปะต ั‡ะธัะปะพ ะผั–ะถ ะดะฒะพะผะฐ ะฒะบะฐะทะฐะฝะธะผะธ ั‡ะธัะปะฐะผะธ, ะฐ ะ”ะฐะปั–() ะฟั€ะพัั‚ะพ ะณะตะฝะตั€ัƒั” ะฒะธะฟะฐะดะบะพะฒะต ั‡ะธัะปะพ ะฒั–ะด ะฝัƒะปั ะดะพ Int32.MaxValue.

ะฉะพะฑ ัั‚ะฒะพั€ะธั‚ะธ ะตะบะทะตะผะฟะปัั€ ะบะปะฐััƒ Random, ะฟั€ะพัั‚ะพ ัะบะพั€ะธัั‚ะฐะนั‚ะตัั ั‚ะฐะบะธะผ ั€ัะดะบะพะผ ะบะพะดัƒ:

Random rand = new Random ();

ะŸะพั‚ั–ะผ, ั‰ะพะฑ ะทะณะตะฝะตั€ัƒะฒะฐั‚ะธ ะฒะธะฟะฐะดะบะพะฒะต ั†ั–ะปะต ั‡ะธัะปะพ:

int randomNumber = rand.Next(); // ะณะตะฝะตั€ัƒั” ะฒะธะฟะฐะดะบะพะฒะต ั‡ะธัะปะพ ะฒั–ะด 0 ะดะพ Int32.MaxValue

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: Vector3.signedangle ะฝะต ะฒั–ะดะพะฑั€ะฐะถะฐั” ะฟะพะทะฝะฐั‡ะตะฝะธะน ะบัƒั‚ ะฒ ะพะดะธะฝะธั†ั–

ะ’ะตะบั‚ะพั€ะธ ั” ะฟะพั‚ัƒะถะฝะธะผ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะพะผ ัƒ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั–, ะพัะพะฑะปะธะฒะพ ะบะพั€ะธัะฝะธะผ ัƒ ั€ะพะทั€ะพะฑั†ั– ั–ะณะพั€. ะ’ะพะฝะธ ะผะพะถัƒั‚ัŒ ะฟั€ะตะดัั‚ะฐะฒะปัั‚ะธ ะฝะฐะฟั€ัะผะบะธ, ัˆะฒะธะดะบะพัั‚ั– ั‚ะฐ, ะพั‡ะตะฒะธะดะฝะพ, ะฟะพะปะพะถะตะฝะฝั ะฒ 3D-ะฟั€ะพัั‚ะพั€ั–. ะŸั€ะฐั†ัŽัŽั‡ะธ ะท ั†ะธะผะธ ะฒะตะบั‚ะพั€ะฐะผะธ, ั–ะฝะพะดั– ะฟะพั‚ั€ั–ะฑะฝะพ ะพะฑั‡ะธัะปะธั‚ะธ ะบัƒั‚ ะผั–ะถ ะดะฒะพะผะฐ ะฒะตะบั‚ะพั€ะฐะผะธ. ะขัƒั‚ ะฟะพั‡ะธะฝะฐั” ะดั–ัั‚ะธ ะผะตั‚ะพะด Vector3.SignedAngle Unity.

Vector3.SignedAngle Unity ะœะตั‚ะพะด ะพะฑั‡ะธัะปัŽั” ะบัƒั‚ ัƒ ะณั€ะฐะดัƒัะฐั… ะผั–ะถ ะดะฒะพะผะฐ ะฒะตะบั‚ะพั€ะฐะผะธ ะท ัƒั€ะฐั…ัƒะฒะฐะฝะฝัะผ ะฝะฐะฟั€ัะผะบัƒ. ะ™ะพะณะพ ะทะฝะฐั‡ะตะฝะฝั ะบะพะปะธะฒะฐั”ั‚ัŒัั ะฒั–ะด -180 ะดะพ 180, ั‚ะฐะบะธะผ ั‡ะธะฝะพะผ ั‚ะฐะบะพะถ ะฒะบะฐะทัƒัŽั‡ะธ ะฝะฐะผ ะฝะฐะฟั€ัะผะพะบ. ะะฐ ะถะฐะปัŒ, ะดะตัะบั– ะบะพั€ะธัั‚ัƒะฒะฐั‡ั– ะฟะพะฒั–ะดะพะผะธะปะธ ะฟั€ะพ ะฟั€ะพะฑะปะตะผะธ ะท ะฝะตะฟั€ะฐะฒะธะปัŒะฝะธะผ ะฒั–ะดะพะฑั€ะฐะถะตะฝะฝัะผ ะบัƒั‚ะฐ ะทั– ะทะฝะฐะบะพะผ. ะ”ะฐะฒะฐะนั‚ะต ะทะฐะณะปะธะฑะธะผะพัั ะฒ ะถะธั‚ั‚ั”ะทะดะฐั‚ะฝะต ั€ั–ัˆะตะฝะฝั ั†ั–ั”ั— ะฟะพัˆะธั€ะตะฝะพั— ะฟั€ะพะฑะปะตะผะธ.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: ั€ัะดะพะบ ะดะพั€ั–ะฒะฝัŽั” ั–ะณะฝะพั€ัƒะฒะฐั‚ะธ ั€ะตะณั–ัั‚ั€

C# โ€” ั†ะต ะฑะฐะณะฐั‚ะพะณั€ะฐะฝะฝะฐ ะผะพะฒะฐ ะท ะฑะตะทะปั–ั‡ั‡ัŽ ั„ัƒะฝะบั†ั–ะน, ัะบั– ะฟะพะปะตะณัˆัƒัŽั‚ัŒ ะฒะธะบะพะฝะฐะฝะฝั ะฟั€ะพะณั€ะฐะผะฝะธั… ะทะฐะฒะดะฐะฝัŒ. ะžะดะฝั–ั”ัŽ ะท ั‚ะฐะบะธั… ะผะพะถะปะธะฒะพัั‚ะตะน ั” ะผะพะถะปะธะฒั–ัั‚ัŒ ะฟะพั€ั–ะฒะฝัŽะฒะฐั‚ะธ ั€ัะดะบะธ, ะฝะต ะฒั€ะฐั…ะพะฒัƒัŽั‡ะธ ั—ั… ั€ะตะณั–ัั‚ั€, ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‡ะธ ะฟะตั€ะตั€ะฐั…ัƒะฒะฐะฝะฝั StringComparison. ะ”ะปั ั†ัŒะพะณะพ ะฒะธะบะพั€ะธัั‚ะพะฒัƒั”ั‚ัŒัั ั„ัƒะฝะบั†ั–ั `string.Equals`.

ะŸะพั€ั–ะฒะฝัะฝะฝั ั€ัะดะบั–ะฒ ะผะฐั” ะฒะธั€ั–ัˆะฐะปัŒะฝะต ะทะฝะฐั‡ะตะฝะฝั ะฒ ะฑะฐะณะฐั‚ัŒะพั… ัั†ะตะฝะฐั€ั–ัั… ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั. ะžะดะฝะฐะบ ั‡ะฐัั‚ะพ ะผะธ ะฝะต ะดะฑะฐั”ะผะพ ะฟั€ะพ ั€ะตะณั–ัั‚ั€ ั‚ะตะบัั‚ัƒ, ัะบะธะน ะฟะพั€ั–ะฒะฝัŽั”ะผะพ. C# ัะฟั€ะพั‰ัƒั” ั†ะตะน ะฟั€ะพั†ะตั, ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‡ะธ ั„ัƒะฝะบั†ั–ะพะฝะฐะปัŒะฝั–ัั‚ัŒ, ัะบะฐ ะปะตะถะธั‚ัŒ ะฒ ะพัะฝะพะฒั– ะฑะฐะณะฐั‚ัŒะพั… ะพะฟะตั€ะฐั†ั–ะน.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ ะพะทะฒโ€™ัะทะฐะฝะพ: ะฒั–ะดะฝัั‚ะธ ะดะฒะฐ ั€ะฐะทะธ

ะ—ะฒะธั‡ะฐะนะฝะพ, ั ะพะฑะพะฒ'ัะทะบะพะฒะพ ะดะพะฟะพะผะพะถัƒ ะฒ ั†ัŒะพะผัƒ. ะะธะถั‡ะต ะฝะฐะฒะตะดะตะฝะพ ะผั–ะน ะดะตั‚ะฐะปัŒะฝะธะน ะฟั€ะพะตะบั‚ ั‚ะตะผะธ ยซะฒั–ะดะฝั–ะผะฐะฝะฝั ะดะฒะพั… ั€ะฐะทั–ะฒ ัƒ C#ยป.

ะœะพะฒะธ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั ะฑัƒะปะธ ะฒะฐะถะปะธะฒะธะผ ั–ะฝัั‚ั€ัƒะผะตะฝั‚ะพะผ ะดะปั ั„ะพั€ะผัƒะฒะฐะฝะฝั ะฝะฐัˆะพะณะพ ั‚ะตั…ะฝะพะปะพะณั–ั‡ะฝะพะณะพ ัะฒั–ั‚ัƒ. ะžะดะฝั–ั”ัŽ ะท ะพัะพะฑะปะธะฒะธั… ะผะพะฒ, ัะบะฐ ะผะฐะปะฐ ะทะฝะฐั‡ะฝะธะน ะฒะฟะปะธะฒ, ั” C#. ะ’ั–ะดะพะผะธะน ัะฒะพั”ัŽ ัƒะฝั–ะฒะตั€ัะฐะปัŒะฝั–ัั‚ัŽ ั‚ะฐ ะทั€ัƒั‡ะฝั–ัั‚ัŽ ะดะปั ะบะพั€ะธัั‚ัƒะฒะฐั‡ะฐ, ะฒั–ะฝ ะทะฐะฑะตะทะฟะตั‡ัƒั” ะฟั€ะพัั‚ะธะน ะฟั–ะดั…ั–ะด ะดะพ ะบั–ะปัŒะบะพั… ะฟั€ะพะฑะปะตะผ ะบะพะดัƒะฒะฐะฝะฝั. ะžะดะฝั–ั”ัŽ ะท ะฟะพัˆะธั€ะตะฝะธั… ะฟั€ะพะฑะปะตะผ, ัะบั– ะฒะธั€ั–ัˆัƒัŽั‚ัŒัั ะทะฐ ะดะพะฟะพะผะพะณะพัŽ C#, ั” ะฒั–ะดะฝั–ะผะฐะฝะฝั ะดะฒะพั… ั€ะฐะทั–ะฒ. ะะฑัั‚ั€ะฐะบั†ั–ั, ั‰ะพ ัั‚ะพั—ั‚ัŒ ะทะฐ ั†ะธะผ, ะฟะพะปัะณะฐั” ัƒ ะฒะธะทะฝะฐั‡ะตะฝะฝั– ั€ั–ะทะฝะธั†ั– ะผั–ะถ ะดะฒะพะผะฐ ั‡ะฐัะพะฒะธะผะธ ั‚ะพั‡ะบะฐะผะธ, ะฟะพะบะฐะทะฝะธะบะพะผ, ัะบะธะน ะฒะธัะฒะปัั”ั‚ัŒัั ะบะพั€ะธัะฝะธะผ ัƒ ะบะพะพั€ะดะธะฝะฐั†ั–ั— ะฟะพะดั–ะน, ะพั†ั–ะฝะบะฐั… ั‡ะฐััƒ ะฒะธะบะพะฝะฐะฝะฝั ั‚ะฐ ะฐะฝะฐะปั–ั‚ะธั‡ะฝะธั… ะทะฐะฟะธัะฐั….

DateTime startTime = ะฝะพะฒะธะน DateTime(2022, 1, 1, 8, 0, 0);
DateTime endTime = ะฝะพะฒะธะน DateTime(2022, 1, 1, 10, 30, 0);
ะ ั–ะทะฝะธั†ั TimeSpan = endTime.Subtract(startTime);

ะะฐะฒะตะดะตะฝะธะน ะฒะธั‰ะต ะบะพะด ะฟั€ะตะดัั‚ะฐะฒะปัั” ะฟั€ะพัั‚ะธะน ัะฟะพัั–ะฑ ะพะฑั‡ะธัะปะตะฝะฝั ั€ั–ะทะฝะธั†ั– ะผั–ะถ ะดะฒะพะผะฐ ั‡ะฐัะฐะผะธ.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: ัะบ ะฒะธะดะฐะปะธั‚ะธ ะฒัั– ั„ะฐะนะปะธ ะฒ ะบะฐั‚ะฐะปะพะทั–

ะ’ะธะดะฐะปะตะฝะฝั ั„ะฐะนะปั–ะฒ ะท ะบะฐั‚ะฐะปะพะณัƒ ั” ะทะฒะธั‡ะฐะนะฝะธะผ ะทะฐะฒะดะฐะฝะฝัะผ ัƒ ัะธัั‚ะตะผะฝะพะผัƒ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั–. ะฆั– ะพะฟะตั€ะฐั†ั–ั— ะฒะธะผะฐะณะฐัŽั‚ัŒ ะพะฑะตั€ะตะถะฝะพะณะพ ะฟะพะฒะพะดะถะตะฝะฝั, ะพัะบั–ะปัŒะบะธ ะฝะตะฟั€ะฐะฒะธะปัŒะฝะต ะฒะธะบะพั€ะธัั‚ะฐะฝะฝั ะผะพะถะต ะฟั€ะธะทะฒะตัั‚ะธ ะดะพ ะพัั‚ะฐั‚ะพั‡ะฝะพั— ะฒั‚ั€ะฐั‚ะธ ะดะฐะฝะธั…. ะฃ ะผะพะฒั– ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝั C# ะฟั€ะพัั‚ั–ั€ ั–ะผะตะฝ System.IO ะฝะฐะดะฐั” ะผะตั‚ะพะดะธ ะดะปั ะฒะธะบะพะฝะฐะฝะฝั ั‚ะฐะบะธั… ะพะฟะตั€ะฐั†ั–ะน.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: ะพั‚ั€ะธะผะฐั‚ะธ ะผะฐะบัะธะผะฐะปัŒะฝะต ะทะฝะฐั‡ะตะฝะฝั enum

ะžั‚ั€ะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัŒะฝะพะณะพ ะทะฝะฐั‡ะตะฝะฝั ะฒั–ะด ั‚ะธะฟัƒ ะฟะตั€ะตั€ะฐั…ัƒะฒะฐะฝะฝั ั” ะฟะพัˆะธั€ะตะฝะธะผ ะทะฐะฒะดะฐะฝะฝัะผ, ะท ัะบะธะผ ัั‚ะธะบะฐัŽั‚ัŒัั ั€ะพะทั€ะพะฑะฝะธะบะธ. ะฆะต ะฟะพั‚ั€ั–ะฑะฝะพ ะฒ ัั†ะตะฝะฐั€ั–ัั…, ะบะพะปะธ ะฒะฐะผ ะฟะพั‚ั€ั–ะฑะฝะพ ะฟะตั€ะตะฒั–ั€ะธั‚ะธ ะฒะฒะตะดะตะฝั– ะบะพั€ะธัั‚ัƒะฒะฐั‡ะตะผ ะดะฐะฝั– ะฐะฑะพ ะพะฑั€ะพะฑะธั‚ะธ ะฟะตะฒะฝั– ั€ะตััƒั€ัะธ ะฝะฐ ะพัะฝะพะฒั– ะทะฝะฐั‡ะตะฝะฝั enum. C# ะทะฐะฑะตะทะฟะตั‡ัƒั” ะฟั€ะพัั‚ะธะน ัะฟะพัั–ะฑ ะดะพััะณั‚ะธ ั†ัŒะพะณะพ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ะบะปะฐััƒ Enum ั– ั‚ั€ะพั…ะธ LINQ.

ะ”ะฐะฒะฐะนั‚ะต ั€ะพะทะณะปัะฝะตะผะพ ั€ั–ัˆะตะฝะฝั, ัะบะต ั€ะพะฑะธั‚ัŒ ะพั‚ั€ะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัŒะฝะพะณะพ ะทะฝะฐั‡ะตะฝะฝั ะฟะตั€ะตะปั–ะบัƒ ะฟั€ะพัั‚ะธะผ, ัะบ ะฟะธั€ั–ะณ.

ะฒั–ะดะบั€ะธั‚ะธะน ะฟะตั€ะตะปั–ะบ MyEnum
{
ะ’ะฐั€ั–ะฐะฝั‚1 = 1,
ะ’ะฐั€ั–ะฐะฝั‚2 = 2,
ะ’ะฐั€ั–ะฐะฝั‚ 3 = 3
}

...

public int GetMaxEnumValue()
{
ะฟะพะฒะตั€ั‚ะฐั” Enum.GetValues(typeof(MyEnum)).Cast().ะœะฐะบั();
}

ะฆะตะน ะบะพั€ะพั‚ะบะธะน ั„ั€ะฐะณะผะตะฝั‚ ะบะพะดัƒ ะฒะธะบะพะฝัƒั” ะฒััŽ ั€ะพะฑะพั‚ัƒ ะท ะพั‚ั€ะธะผะฐะฝะฝั ะฝะฐะนะฒะธั‰ะพะณะพ ะทะฝะฐั‡ะตะฝะฝั ะฒ enum. ะะปะต ัะบ ั†ะต ะฟั€ะฐั†ัŽั”?

ะ“ะปะธะฑะพะบะต ะทะฐะฝัƒั€ะตะฝะฝั ะฒ ะบะพะด

`Enum.GetValues(typeof(MyEnum))` ั” ะฟะตั€ัˆะพัŽ ะฒะฐะถะปะธะฒะพัŽ ั‡ะฐัั‚ะธะฝะพัŽ ะดะปั ั€ะพะทัƒะผั–ะฝะฝั. ะฆะตะน ะฒะฑัƒะดะพะฒะฐะฝะธะน ะผะตั‚ะพะด .NET ะฟะพะฒะตั€ั‚ะฐั” ะผะฐัะธะฒ, ั‰ะพ ะผั–ัั‚ะธั‚ัŒ ะทะฝะฐั‡ะตะฝะฝั ะบะพะฝัั‚ะฐะฝั‚ ัƒ ะฒะบะฐะทะฐะฝะพะผัƒ ะฟะตั€ะตะปั–ะบัƒ. ะขะธะฟ ะฟะตั€ะตั€ะฐั…ัƒะฒะฐะฝะฝั ะฟะตั€ะตะดะฐั”ั‚ัŒัั ัะบ ะฟะฐั€ะฐะผะตั‚ั€ ะผะตั‚ะพะดัƒ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ะบะปัŽั‡ะพะฒะพะณะพ ัะปะพะฒะฐ `typeof`.

ะšะพะปะธ ัƒ ะฝะฐั ั” ะผะฐัะธะฒ, ะฝะฐะผ ะฟะพั‚ั€ั–ะฑะฝะพ ะฟั€ะธะฒะตัั‚ะธ ะนะพะณะพ ะดะพ ั†ั–ะปะธั… ั‡ะธัะตะป. ะฆะต ั€ะพะฑะธั‚ัŒัั ะทะฐ ะดะพะฟะพะผะพะณะพัŽ .Cast(), ัะบะธะน ั” ั‡ะฐัั‚ะธะฝะพัŽ LINQ (Language Integrated Query). LINQ โ€” ั†ะต ะฝะฐะฑั–ั€ ั‚ะตั…ะฝั–ะบ ั– ะผะตั‚ะพะดั–ะฒ ัƒ .NET, ัะบั– ะดะพะทะฒะพะปััŽั‚ัŒ ะฝะฐะผ ะฟั€ะฐั†ัŽะฒะฐั‚ะธ ะท ะดะฐะฝะธะผะธ ะฑั–ะปัŒัˆ ั–ะฝั‚ัƒั—ั‚ะธะฒะฝะพ ะทั€ะพะทัƒะผั–ะปะธะผ ั– ะณะฝัƒั‡ะบะธะผ ัะฟะพัะพะฑะพะผ.

ะŸั–ัะปั ะฟั€ะธะฒะตะดะตะฝะฝั ะทะฝะฐั‡ะตะฝัŒ ะดะพ ั†ั–ะปะธั… ั‡ะธัะตะป ะพั‚ั€ะธะผะฐั‚ะธ ะผะฐะบัะธะผะฐะปัŒะฝะต ะทะฝะฐั‡ะตะฝะฝั ั‚ะฐะบ ัะฐะผะพ ะฟั€ะพัั‚ะพ, ัะบ ะฒะธะบะปะธะบะฐั‚ะธ ะผะตั‚ะพะด .Max(), ั‰ะต ะพะดะธะฝ ั‡ัƒะดะพะฒะธะน ั–ะฝัั‚ั€ัƒะผะตะฝั‚, ะฝะฐะดะฐะฝะธะน LINQ. ะฆะตะน ะผะตั‚ะพะด ะฟะพะฒะตั€ั‚ะฐั” ะผะฐะบัะธะผะฐะปัŒะฝะต ะทะฝะฐั‡ะตะฝะฝั ะฒ ะบะพะปะตะบั†ั–ั— ะทะฝะฐั‡ะตะฝัŒ int.

ะ’ะธะบะพั€ะธัั‚ะฐะฝะฝั ะฑั–ะฑะปั–ะพั‚ะตะบ Enum ั– LINQ

ะšะปะฐั Enum ั” ั‡ะฐัั‚ะธะฝะพัŽ ะฟั€ะพัั‚ะพั€ัƒ ั–ะผะตะฝ System ัƒ .NET ั– ะฝะฐะดะฐั” ะบั–ะปัŒะบะฐ ัั‚ะฐั‚ะธั‡ะฝะธั… ะผะตั‚ะพะดั–ะฒ ะดะปั ั€ะพะฑะพั‚ะธ ะท ะฟะตั€ะตั€ะฐั…ัƒะฒะฐะฝะฝัะผะธ. ะฆะต ะฑั–ะฑะปั–ะพั‚ะตะบะฐ, ะดะพ ัะบะพั— ะผะพะถะฝะฐ ะทะฒะตั€ะฝัƒั‚ะธัั, ะบะพะปะธ ะฒะฐะผ ะฟะพั‚ั€ั–ะฑะฝะพ ะฒะธะบะพะฝะฐั‚ะธ ะฑัƒะดัŒ-ัะบัƒ ะพะฟะตั€ะฐั†ั–ัŽ, ะฟะพะฒโ€™ัะทะฐะฝัƒ ะท ั‚ะธะฟะฐะผะธ ะฟะตั€ะตะปั–ะบัƒ.

ะ— ั–ะฝัˆะพะณะพ ะฑะพะบัƒ, LINQ, ั‡ะฐัั‚ะธะฝะฐ ะฟั€ะพัั‚ะพั€ัƒ ั–ะผะตะฝ System.Linq, ั” ะพะดะฝั–ั”ัŽ ะท ะฝะฐะนะฟะพั‚ัƒะถะฝั–ัˆะธั… ั„ัƒะฝะบั†ั–ะน C#. ะ’ั–ะฝ ะฝะฐะดะฐั” ั€ั–ะทะฝั– ะผะตั‚ะพะดะธ ะตั„ะตะบั‚ะธะฒะฝะพั— ะพะฑั€ะพะฑะบะธ ะบะพะปะตะบั†ั–ะน, ะฝะฐะฟั€ะธะบะปะฐะด ะพั‚ั€ะธะผะฐะฝะฝั ะผะฐะบัะธะผะฐะปัŒะฝะธั…, ะผั–ะฝั–ะผะฐะปัŒะฝะธั… ะฐะฑะพ ัะตั€ะตะดะฝั–ั… ะทะฝะฐั‡ะตะฝัŒ, ัะพั€ั‚ัƒะฒะฐะฝะฝั ั‚ะฐ ั„ั–ะปัŒั‚ั€ัƒะฒะฐะฝะฝั ะดะฐะฝะธั….

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต

ะ’ะธั€ั–ัˆะตะฝะพ: ะฒั–ะด ะผะฐั‚ะตะผะฐั‚ะธะบะธ ะดะพ ั€ะฐะดั–ะฐะฝั‚ะฐ

ะœะฐั‚ะตะผะฐั‚ะธะบะฐ ะผะพะถะต ะฑัƒั‚ะธ ัะบะปะฐะดะฝะธะผ ะฟั€ะตะดะผะตั‚ะพะผ, ะฐะปะต ะทะฐ ะฟั€ะฐะฒะธะปัŒะฝะพะณะพ ะฟั–ะดั…ะพะดัƒ ะฒะพะฝะฐ ะผะพะถะต ะฑัƒั‚ะธ ะฒะตัะตะปะพัŽ ั‚ะฐ ะบะพั€ะธัะฝะพัŽ. ะžััŒ ะบั–ะปัŒะบะฐ ะฟะพั€ะฐะด, ัะบั– ะดะพะฟะพะผะพะถัƒั‚ัŒ ะฒะฐะผ ะฟะพั‡ะฐั‚ะธ:

- ะŸะพั‡ะฝั–ั‚ัŒ ั–ะท ะฒะธะฒั‡ะตะฝะฝั ะพัะฝะพะฒ. ะžะทะฝะฐะนะพะผั‚ะตัั ะท ะพัะฝะพะฒะฝะธะผะธ ะฟะพะฝัั‚ั‚ัะผะธ ะผะฐั‚ะตะผะฐั‚ะธะบะธ, ั‰ะพะฑ ัƒ ะฒะฐั ะฑัƒะปะฐ ะผั–ั†ะฝะฐ ะพัะฝะพะฒะฐ, ะฝะฐ ัะบั–ะน ะผะพะถะฝะฐ ะฑัƒะดัƒะฒะฐั‚ะธ.
- ะ’ะธะบะพั€ะธัั‚ะพะฒัƒะนั‚ะต ะพะฝะปะฐะนะฝ-ั€ะตััƒั€ัะธ. ะ’ ะ†ะฝั‚ะตั€ะฝะตั‚ั– ั” ะฑะฐะณะฐั‚ะพ ะฑะตะทะบะพัˆั‚ะพะฒะฝะธั… ั€ะตััƒั€ัั–ะฒ, ัะบั– ะดะพะฟะพะผะพะถัƒั‚ัŒ ะฒะฐะผ ะฟะพะบั€ะฐั‰ะธั‚ะธ ัะฒะพั— ะผะฐั‚ะตะผะฐั‚ะธั‡ะฝั– ะฝะฐะฒะธั‡ะบะธ. ะฉะพะฑ ะพั‚ั€ะธะผะฐั‚ะธ ะดะพะดะฐั‚ะบะพะฒัƒ ะดะพะฟะพะผะพะณัƒ, ะฒั–ะดะฒั–ะดะฐะนั‚ะต ั‚ะฐะบั– ะฒะตะฑ-ัะฐะนั‚ะธ, ัะบ Khan Academy ะฐะฑะพ The Math Forum.
- ะŸั€ะฐะบั‚ะธะบะฐ, ะฟั€ะฐะบั‚ะธะบะฐ, ะฟั€ะฐะบั‚ะธะบะฐ! ะงะธะผ ะฑั–ะปัŒัˆะต ะฒะธ ั‚ั€ะตะฝัƒั”ั‚ะตัั, ั‚ะธะผ ะบั€ะฐั‰ะต ัƒ ะฒะฐั ะฒะธะนะดะต ะผะฐั‚ะตะผะฐั‚ะธะบะฐ. ะŸั€ะพั…ะพะดัŒั‚ะต ั‡ะตั€ะตะท ัะบะปะฐะดะฝั– ะฟั€ะพะฑะปะตะผะธ ั– ะฝะฐะผะฐะณะฐะนั‚ะตัั ะฒะธั€ั–ัˆะธั‚ะธ ั—ั… ัะบะพะผะพะณะฐ ัˆะฒะธะดัˆะต. ะฆะต ะดะพะฟะพะผะพะถะต ั‚ะพะฑั– ั€ะพะทะฒะธะฝัƒั‚ะธ ัˆะฒะธะดะบั–ัั‚ัŒ ั– ั‚ะพั‡ะฝั–ัั‚ัŒ ัƒ ั€ะพะทั€ะฐั…ัƒะฝะบะฐั….
-ะ‘ัƒะดัŒั‚ะต ะพั€ะณะฐะฝั–ะทะพะฒะฐะฝั–. ะ’ั–ะดัั‚ะตะถัƒะนั‚ะต ัะฒั–ะน ะฟั€ะพะณั€ะตั, ะฒะตะดัƒั‡ะธ ะผะฐั‚ะตะผะฐั‚ะธั‡ะฝะธะน ั‰ะพะดะตะฝะฝะธะบ ะฐะฑะพ ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‡ะธ ะฟั€ะพะณั€ะฐะผัƒ ะดะปั ะฒั–ะดัั‚ะตะถะตะฝะฝั, ัะบ-ะพั‚ Google Sheets ะฐะฑะพ Excel. ะฆะต ะดะพะฟะพะผะพะถะต ะฒะฐะผ ะฑัƒั‚ะธ ะฒ ะบัƒั€ัั– ัะฒะพะณะพ ะฟั€ะพะณั€ะตััƒ ั‚ะฐ ะฒั–ะดัั‚ะตะถัƒะฒะฐั‚ะธ ะฑัƒะดัŒ-ัะบั– ะฟะพะบั€ะฐั‰ะตะฝะฝั, ัะบั– ะฒะธ ั€ะพะฑะธั‚ะต ะท ั‡ะฐัะพะผ.

ะ’ะธั€ั–ัˆะตะฝะพ: ั†ะธะบะป ะฝะฐะด ะฒะปะฐัั‚ะธะฒะพัั‚ัะผะธ ะพะฑโ€™ั”ะบั‚ะฐ

ะŸั€ะพั†ะตั ั–ั‚ะตั€ะฐั†ั–ั— ะฒะปะฐัั‚ะธะฒะพัั‚ะตะน ะพะฑโ€™ั”ะบั‚ะฐ ะฒ C# ั” ะทะฒะธั‡ะฐะนะฝะพัŽ ั‚ะฐ ะฝะตะพะฑั…ั–ะดะฝะพัŽ ะพะฟะตั€ะฐั†ั–ั”ัŽ, ะฒั–ะฝ ะดะฐั” ะฝะฐะผ ะทะผะพะณัƒ ะพะฑั€ะพะฑะปัั‚ะธ ะดะธะฝะฐะผั–ั‡ะฝั– ะดะฐะฝั–, ั‚ะฐะบั– ัะบ ะฒะฒะตะดะตะฝะฝั ะบะพั€ะธัั‚ัƒะฒะฐั‡ะฐ, ะทะฐะฟะธัะธ ะฑะฐะทะธ ะดะฐะฝะธั… ั‚ะพั‰ะพ. ะ†ั‚ะตั€ะฐั†ั–ั ั†ะธั… ะทะฐัะพะฑั–ะฒ ะพะทะฝะฐั‡ะฐั” ะฟะตั€ะตะณะปัะด ะบะพะถะฝะพั— ะฒะปะฐัั‚ะธะฒะพัั‚ั– ะพะฑโ€™ั”ะบั‚ะฐ ะพะดะฝัƒ ะทะฐ ะพะดะฝะพัŽ ะดะปั ะฒะธะบะพะฝะฐะฝะฝั ะฟะตะฒะฝะพะณะพ ะทะฐะฒะดะฐะฝะฝั ั‡ะธ ะพะฟะตั€ะฐั†ั–ั—.

ะฃ C#, ะผะพะฒั–, ะฟะพะฑัƒะดะพะฒะฐะฝั–ะน ะฝะฐะฒะบะพะปะพ ะบะพะฝั†ะตะฟั†ั–ั— ยซะพะฑโ€™ั”ะบั‚ะฝะพ-ะพั€ั–ั”ะฝั‚ะพะฒะฐะฝะพะณะพ ะฟั€ะพะณั€ะฐะผัƒะฒะฐะฝะฝัยป, ัƒ ะฝะฐั ั” ะบั–ะปัŒะบะฐ ะผะตั…ะฐะฝั–ะทะผั–ะฒ ะดะปั ะดะพััะณะฝะตะฝะฝั ั†ัŒะพะณะพ, ะฐ ั‚ะฐะบะพะถ ั‚ะฐะบั– ั†ั–ะฝะฝั– ะฑั–ะฑะปั–ะพั‚ะตะบะธ, ัะบ Reflection. ะ‘ั–ะฑะปั–ะพั‚ะตะบะฐ Reflection ะดะพะทะฒะพะปัั” ะฝะฐะผ ะฟะตั€ะตะฒั–ั€ัั‚ะธ ะผะตั‚ะฐะดะฐะฝั– ั‚ะธะฟั–ะฒ ั– ะดะธะฝะฐะผั–ั‡ะฝะพ ะบะตั€ัƒะฒะฐั‚ะธ ะพะฑโ€™ั”ะบั‚ะฐะผะธ.

ะ”ะตั‚ะฐะปัŒะฝั–ัˆะต