เนื้อหาในบทความนี้ล้าสมัย โปรดปรับปรุงข้อมูลให้เป็นไปตามเหตุการณ์ปัจจุบันหรือล่าสุด ดูประกอบ |
บทความนี้อาจขยายความได้โดยการแปลบทความที่ตรงกันในภาษาอังกฤษ คลิกที่ [ขยาย] เพื่อศึกษาแนวทางการแปล
|
ภาษาซีชาร์ป (C# Programming Language) เป็นภาษาโปรแกรมระดับสูง ที่ใช้ระบบ (strong typing) และสนับสนุนการเขียนโปรแกรมเชิงคำสั่ง การเขียนโปรแกรมเชิงฟังก์ชัน การเขียนโปรแกรมเชิงวัตถุ (แบบคลาส) และ
กระบวนทัศน์ | : , , object-oriented, , , , , , |
---|---|
ตระกูล | C |
(Microsoft) | |
ผู้พัฒนา | Mads Torgersen (Microsoft) |
เริ่มเมื่อ | 2000 |
รุ่นเสถียร | 12.0 / 14 พฤศจิกายน 2023 |
ระบบชนิดตัวแปร | , ,, , , |
Common Language Infrastructure | |
สัญญาอนุญาต | |
นามสกุลของไฟล์ | .cs , .csx |
เว็บไซต์ | learn |
, .NET, .NET Framework (discontinued), , , | |
ภาษาย่อย | |
, , Enhanced C# | |
ได้รับอิทธิพลจาก | |
,, , ,, , , , , Java,, , Object Pascal,VB | |
ส่งอิทธิพลต่อ | |
,,Crystal,, , Dart,, , Java,, , , Rust,,, | |
|
ภาษานี้พัฒนาเริ่มแรกโดยโดยมี (Anders Hejlsberg) จากบริษัทไมโครซอฟท์ ในปีพ.ศ. 2543 ต่อมามีการรับรองให้เป็นมาตรฐานโดยเอ็กมาอินเตอร์เนชันแนล (ECMA-334) ในปีพ.ศ. 2545 และองค์การระหว่างประเทศว่าด้วยการมาตรฐาน (ISO/IEC 23270) ในปีพ.ศ. 2546 ไมโครซอฟท์ได้เปิดตัวภาษาซีชาร์ปพร้อมกับดอตเน็ตเฟรมเวิร์ก และVisual Studio ซิ่งเป็นผลิตภัณฑ์โคลสซอร์ส (closed-source) ทั้งหมด เนื่องจากตอนนั้นไมโครซอฟต์ไม่มีผลิตภัณฑ์ที่เป็นโอเพ่นซอร์ส. ต่อมาไมโครซอฟท์ได้เปิดตัว Visual Studio Code, และ ดอตเน็ตคอร์ ซี่งทั้งหมตนั้นรองรับภาษาซีชาร์ป เป็น และทำงานแบบครอสแพลตฟอร์ม
ปัจจุบันภาษาซีชาร์ปมีรุ่นล่าสุดคือ C# 11.0 ที่ออกมาพร้อมกับ .NET 7.0 ในปี พ.ศ. 2565
ตัวอย่าง
ตัวอย่างต่อไปนี้ คือตัวอย่างโปรแกรม Hello world ใน C# ซึ่งใช้ฟีเจอร์ top-level statement ที่เริ่มมีให้ใช้ได้ตั้งแต่ C# 9.0
using System; Console.WriteLine("Hello, world!");
แต่สำหรับ C# 8.0 หรือก่อนหน้านั้น การเขียนจะต้องเป็นฟังก์ชันที่อยู่ในคลาสดังทำนองนี้
public class ExampleClass { public static void Main() { System.Console.WriteLine("Hello, world!"); } }
ผลของการทำงานคือมีการแสดงคำว่า Hello, world! ในหน้าต่างคอนโซล โดยในแต่ละบรรทัดมีความหมายดังนี้:
public class ExampleClass
บรรทัดนี้คือการประกาศคลาส โดย public หมายถึงวัตถุที่สร้างในโครงการ (project) อื่น ๆ สามารถเข้าใช้งานคลาสนี้ได้ ไม่จำกัด. ข้อมูลต่างๆ ที่อยู่ผ่านใต้หน่วยของบรรทัดนี้ จะใช้ในการทำงานของคลาสนี้
public static void Main()
บรรทัดนี้เป็นจุดที่ใช้ในการเริ่มการทำงานของโปรแกรม เมื่อโปรแกรมทำงาน โดยสามารถเรียกใช้จากโปรแกรมอื่นได้โดยการใช้ไวยากรณ์ ExampleClass.Main()
. (public static void
เป็นส่วนที่ใช้ในการทำงาน ซึ่งต้องเรียนรู้ในการเขียนขั้นสูง)
System.Console.WriteLine("Hello, world!");
ในบรรทัดนี้ เป็นการทำงาน เพื่อแสดงผลออกมา Console คือโปรแกรมระบบ, ซึ่งก็คือ โปรแกรมระบบแบบสั่งคำสั่งที่ละบรรทัด (เช่น DOS) ที่สามารถรับข้อมูลและแสดงผลเป็นข้อความได้. จากที่เราเขียนโปรแกรมจะทำการเรียก Console โดยใช้คำสั่ง WriteLine, ซึ่งทำให้สามารถส่งค่าข้อความออกมาแสดงผลได้
มาตรฐาน
ไมโครซอฟท์ส่งมาตรฐานภาษาซีชาร์ปให้กับ Ecma และได้รับการยอมรับเป็นมาตรฐาน ECMA ในเดือนธันวาคม ค.ศ. 2001 ในชื่อว่า ECMA-334 C# Language Specification ใน ค.ศ. 2003 ภาษาซีชาร์ปได้รับการยอมรับเป็นมาตรฐาน ISO (ISO/IEC 23270).
มาตรฐาน ISO/IEC 23270:2003 ระบุรูปแบบ และกำหนดการแปล (ตีความ) โปรแกรมที่เขียนด้วยภาษาซีชาร์ป. โดยตัวมาตรฐานได้ระบุ:
- รูปแบบการนำเสนอ (the representation of C# programs)
- ไวยากรณ์ (the syntax and constraints of the C# language)
- กฎการตีความสำหรับแปลโปรแกรมภาษาซีชาร์ป (the semantic rules for interpreting C# programs)
- ข้อห้าม และข้อจำกัด ของเครื่องมือที่สร้างตามข้อกำหนดของซีชาร์ป (the restrictions and limits imposed by a conforming implementation of C#)
ISO/IEC 23270:2003 ไม่ได้ระบุ:
- กลไกในการแปลงโปรแกรมภาษาซีชาร์ป เพื่อใช้ในระบบประมวลผลข้อมูล (the mechanism by which C# programs are transformed for use by a data-processing system)
- กลไกในการเรียกให้โปรแกรมภาษาซีชาร์ปทำงาน เพื่อใช้ในระบบประมวลผลข้อมูล (the mechanism by which C# applications are invoked for use by a data-processing system)
- กลไกในการแปลงข้อมูลเข้า เพื่อใช้กับโปรแกรมภาษาซีชาร์ป (the mechanism by which input data are transformed for use by a C# application)
- กลไกในการแปลงข้อมูลออก หลังจากถูกประมวลผลโดยโปรแกรมภาษาซีชาร์ป (the mechanism by which output data are transformed after being produced by a C# application)
- the size or complexity of a program and its data that will exceed the capacity of any specific data-processing system or the capacity of a particular processor;
- all minimal requirements of a data-processing system that is capable of supporting a conforming implementation.
นอกจากนี้ตัวมาตรฐานไม่ได้กล่าวถึงโครงสร้างข้อมูล และตัวไลบรารีกลางของ .NET Framework ซึ่งเป็นหัวใจสำคัญของการเขียนโปรแกรมด้วยภาษาซีชาร์ปเลย
หมายเหตุ
- for async
อ้างอิง
- "InfoQ eMag: A Preview of C# 7".
- "Announcing C# 12". สืบค้นเมื่อ 18 พฤศจิกายน 2023.
- อ้างอิงผิดพลาด: ป้ายระบุ
<ref>
ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อdynamic
- "The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.: dotnet/roslyn". November 13, 2019 – โดยทาง GitHub.
- "CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.: dotnet/coreclr". November 13, 2019 – โดยทาง GitHub.
- อ้างอิงผิดพลาด: ป้ายระบุ
<ref>
ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อinfluenced by CPP
- อ้างอิงผิดพลาด: ป้ายระบุ
<ref>
ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อinfluenced by op
- (PDF). Cray Inc. 2015-10-01. คลังข้อมูลเก่าเก็บจากแหล่งเดิม (PDF)เมื่อ 2016-02-05. สืบค้นเมื่อ 2016-01-14.
- . คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-01-11. สืบค้นเมื่อ 2017-01-11.
- Borenszweig, Ary (June 14, 2016). "Crystal 0.18.0 released!".
It's heavily inspired by Ruby, and other languages (like C#, Go and Python).
- "Web Languages and VMs: Fast Code is Always in Fashion. (V8, Dart) - Google I/O 2013". YouTube. เก็บจากแหล่งเดิมเมื่อ 2021-12-21. สืบค้นเมื่อ 22 December 2013.
- Java 5.0 added several new language features (the , , and ), after they were introduced in the similar (and competing) C# language [1] [2]
- อ้างอิงผิดพลาด: ป้ายระบุ
<ref>
ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อinfluenced
- "Influences - The Rust Reference". The Rust Reference. สืบค้นเมื่อ 2023-04-18.
- Lattner, Chris (2014-06-03). "Chris Lattner's Homepage". Chris Lattner. สืบค้นเมื่อ 2020-05-12.
The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
- "Welcome to C# 11". November 11, 2022.
- "Announcing .NET 7 -- the Fastest .NET Yet". November 11, 2022.[]
- "ISO/IEC 23270:2003 Information technology".
แหล่งข้อมูลอื่น
- Microsoft Developer Network - Visual C#
- เทคนิคการเขียนโปรแกรมขั้นสูง C# 2010-12-22 ที่ เวย์แบ็กแมชชีน
- บทความ (ภาษาไทย) สอนภาษา C#
- บทความ (ภาษาไทย) สอนภาษา C# และอื่น ๆ ที่เกี่ยวข้อง
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
enuxhainbthkhwamnilasmy oprdprbprungkhxmulihepniptamehtukarnpccubnhruxlasud duhnaxphiprayprakxbbthkhwamnixackhyaykhwamidodykaraeplbthkhwamthitrngkninphasaxngkvs khlikthi khyay ephuxsuksaaenwthangkaraeplkhunsamarthdu karaepldwykhxmphiwetxrcakbthkhwaminphasaxngkvs ekhruxngmuxchwyaeplxyang diphaexl hrux kuekilthranselth epncuderimtnthidisahrbkaraepl xyangirktam phuaeplcatxngtrwcsxbkhxphidphladcakkaraepldwykhxmphiwetxraelayunynwakaraeplnnthuktxng erakhxptiesthenuxhathikhdlxkcakekhruxngmuxaeplthiimmikartrwcthankxnephyaephr krunaxyaaeplswnkhxngkhxkhwamthiduaelwechuxthuximidhruxmikhunphaphta thaepnipid oprdchwyyunyndwykartrwcsxbaehlngxangxingthipraktinbthkhwamphasann oprdrabuiwinkhwamyxkaraekikhwakhunaeplenuxhamacakphasaid khunkhwrephimaemaebb Translated en C Sharp programming language iwinhnaphudkhuy sahrbkhaaenanaaelaaenwthangephimetim oprdsuksaidthi wikiphiediy karaepl phasasicharp C Programming Language epnphasaopraekrmradbsung thiichrabb strong typing aelasnbsnunkarekhiynopraekrmechingkhasng karekhiynopraekrmechingfngkchn karekhiynopraekrmechingwtthu aebbkhlas aelaC krabwnthsn object oriented trakulC Microsoft phuphthnaMads Torgersen Microsoft erimemux2000 24 pithiaelw 2000 runesthiyr12 0 14 phvscikayn 2023 6 eduxnkxn 14 phvscikayn 2023 rabbchnidtwaepr Common Language Infrastructuresyyaxnuyatcompiler MIT X11 MIT X11 compiler dual and MIT X11 dual GPL and LGPLnamskulkhxngifl cs csxewbistlearn wbr microsoft wbr com wbr en us wbr dotnet wbr csharp wbr NET NET Framework discontinued phasayxy Enhanced C idrbxiththiphlcakC Java Object Pascal VBsngxiththiphltx Crystal Dart Java Rust C Sharp Programming thiwikitara phasaniphthnaerimaerkodyodymi Anders Hejlsberg cakbristhimokhrsxfth inpiph s 2543 txmamikarrbrxngihepnmatrthanodyexkmaxinetxrenchnaenl ECMA 334 inpiph s 2545 aelaxngkhkarrahwangpraethswadwykarmatrthan ISO IEC 23270 inpiph s 2546 imokhrsxfthidepidtwphasasicharpphrxmkbdxtentefrmewirk aelaVisual Studio singepnphlitphnthokhlssxrs closed source thnghmd enuxngcaktxnnnimokhrsxftimmiphlitphnththiepnoxephnsxrs txmaimokhrsxfthidepidtw Visual Studio Code aela dxtentkhxr singthnghmtnnrxngrbphasasicharp epn aelathanganaebbkhrxsaephltfxrm pccubnphasasicharpmirunlasudkhux C 11 0 thixxkmaphrxmkb NET 7 0 inpi ph s 2565twxyangtwxyangtxipni khuxtwxyangopraekrm Hello world in C sungichfiecxr top level statement thierimmiihichidtngaet C 9 0using System Console WriteLine Hello world aetsahrb C 8 0 hruxkxnhnann karekhiyncatxngepnfngkchnthixyuinkhlasdngthanxngnipublic class ExampleClass public static void Main System Console WriteLine Hello world phlkhxngkarthangankhuxmikaraesdngkhawa Hello world inhnatangkhxnosl odyinaetlabrrthdmikhwamhmaydngni public class ExampleClass brrthdnikhuxkarprakaskhlas ody public hmaythungwtthuthisranginokhrngkar project xun samarthekhaichngankhlasniid imcakd khxmultang thixyuphanithnwykhxngbrrthdni caichinkarthangankhxngkhlasni public static void Main brrthdniepncudthiichinkarerimkarthangankhxngopraekrm emuxopraekrmthangan odysamartheriykichcakopraekrmxunidodykarichiwyakrn ExampleClass Main public static void epnswnthiichinkarthangan sungtxngeriynruinkarekhiynkhnsung System Console WriteLine Hello world inbrrthdni epnkarthangan ephuxaesdngphlxxkma Console khuxopraekrmrabb sungkkhux opraekrmrabbaebbsngkhasngthilabrrthd echn DOS thisamarthrbkhxmulaelaaesdngphlepnkhxkhwamid cakthieraekhiynopraekrmcathakareriyk Console odyichkhasng WriteLine sungthaihsamarthsngkhakhxkhwamxxkmaaesdngphlidmatrthanimokhrsxfthsngmatrthanphasasicharpihkb Ecma aelaidrbkaryxmrbepnmatrthan ECMA ineduxnthnwakhm kh s 2001 inchuxwa ECMA 334 C Language Specification in kh s 2003 phasasicharpidrbkaryxmrbepnmatrthan ISO ISO IEC 23270 matrthan ISO IEC 23270 2003 raburupaebb aelakahndkaraepl tikhwam opraekrmthiekhiyndwyphasasicharp odytwmatrthanidrabu rupaebbkarnaesnx the representation of C programs iwyakrn the syntax and constraints of the C language kdkartikhwamsahrbaeplopraekrmphasasicharp the semantic rules for interpreting C programs khxham aelakhxcakd khxngekhruxngmuxthisrangtamkhxkahndkhxngsicharp the restrictions and limits imposed by a conforming implementation of C ISO IEC 23270 2003 imidrabu klikinkaraeplngopraekrmphasasicharp ephuxichinrabbpramwlphlkhxmul the mechanism by which C programs are transformed for use by a data processing system klikinkareriykihopraekrmphasasicharpthangan ephuxichinrabbpramwlphlkhxmul the mechanism by which C applications are invoked for use by a data processing system klikinkaraeplngkhxmulekha ephuxichkbopraekrmphasasicharp the mechanism by which input data are transformed for use by a C application klikinkaraeplngkhxmulxxk hlngcakthukpramwlphlodyopraekrmphasasicharp the mechanism by which output data are transformed after being produced by a C application the size or complexity of a program and its data that will exceed the capacity of any specific data processing system or the capacity of a particular processor all minimal requirements of a data processing system that is capable of supporting a conforming implementation nxkcaknitwmatrthanimidklawthungokhrngsrangkhxmul aelatwilbrariklangkhxng NET Framework sungepnhwicsakhykhxngkarekhiynopraekrmdwyphasasicharpelyhmayehtufor asyncxangxing InfoQ eMag A Preview of C 7 Announcing C 12 subkhnemux 18 phvscikayn 2023 xangxingphidphlad payrabu lt ref gt imthuktxng immikarkahndkhxkhwamsahrbxangxingchux dynamic The Roslyn NET compiler provides C and Visual Basic languages with rich code analysis APIs dotnet roslyn November 13 2019 odythang GitHub CoreCLR is the runtime for NET Core It includes the garbage collector JIT compiler primitive data types and low level classes dotnet coreclr November 13 2019 odythang GitHub xangxingphidphlad payrabu lt ref gt imthuktxng immikarkahndkhxkhwamsahrbxangxingchux influenced by CPP xangxingphidphlad payrabu lt ref gt imthuktxng immikarkahndkhxkhwamsahrbxangxingchux influenced by op PDF Cray Inc 2015 10 01 khlngkhxmulekaekbcakaehlngedim PDF emux 2016 02 05 subkhnemux 2016 01 14 khlngkhxmulekaekbcakaehlngedimemux 2017 01 11 subkhnemux 2017 01 11 Borenszweig Ary June 14 2016 Crystal 0 18 0 released It s heavily inspired by Ruby and other languages like C Go and Python Web Languages and VMs Fast Code is Always in Fashion V8 Dart Google I O 2013 YouTube ekbcakaehlngedimemux 2021 12 21 subkhnemux 22 December 2013 Java 5 0 added several new language features the and after they were introduced in the similar and competing C language 1 2 xangxingphidphlad payrabu lt ref gt imthuktxng immikarkahndkhxkhwamsahrbxangxingchux influenced Influences The Rust Reference The Rust Reference subkhnemux 2023 04 18 Lattner Chris 2014 06 03 Chris Lattner s Homepage Chris Lattner subkhnemux 2020 05 12 The Swift language is the product of tireless effort from a team of language experts documentation gurus compiler optimization ninjas and an incredibly important internal dogfooding group who provided feedback to help refine and battle test ideas Of course it also greatly benefited from the experiences hard won by many other languages in the field drawing ideas from Objective C Rust Haskell Ruby Python C CLU and far too many others to list Welcome to C 11 November 11 2022 Announcing NET 7 the Fastest NET Yet November 11 2022 lingkesiy ISO IEC 23270 2003 Information technology aehlngkhxmulxunMicrosoft Developer Network Visual C ethkhnikhkarekhiynopraekrmkhnsung C 2010 12 22 thi ewyaebkaemchchin bthkhwam phasaithy sxnphasa C bthkhwam phasaithy sxnphasa C aelaxun thiekiywkhxng bthkhwamkarekhiynopraekrm hrux phasaopraekrmniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmuldk