ตัวแปร C# & Operaทอร์พร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

ตัวแปรใน C# ทำหน้าที่กำหนดชื่อตำแหน่งจัดเก็บค่าที่มีชนิดข้อมูล ในขณะที่ตัวดำเนินการจะทำหน้าที่ประมวลผล เช่น การคำนวณทางคณิตศาสตร์ การเปรียบเทียบ และตรรกะ กับค่าเหล่านั้น โดยรวมแล้ว ตัวแปรและตัวดำเนินการเป็นพื้นฐานของทุกนิพจน์และการคำนวณที่โปรแกรม C# ดำเนินการ

  • 📦 ตัวแปร: ตัวแปรคือพื้นที่จัดเก็บข้อมูลที่มีชื่อ โดยชนิดข้อมูลของตัวแปรจะกำหนดขนาด รูปแบบ และการดำเนินการที่ถูกต้องสำหรับค่าของตัวแปรนั้น
  • 🔤 ประกาศ: การประกาศตัวแปร String และ Int32 แสดงให้เห็นว่า C# เก็บข้อความและจำนวนเต็มอย่างไร จากนั้นจึงพิมพ์ค่าเหล่านั้นด้วย Console.Write
  • Operaกลุ่ม tor: ตัวดำเนินการทางคณิตศาสตร์ ตัวดำเนินการเชิงสัมพันธ์ และตัวดำเนินการเชิงตรรกะ ครอบคลุมการคำนวณ การเปรียบเทียบ และการตรวจสอบแบบบูลีน ซึ่งเป็นตัวขับเคลื่อนการตัดสินใจของโปรแกรม
  • 🧮 การกำหนดค่าและการดำเนินการบิต: ตัวดำเนินการแบบผสม เช่น เครื่องหมายบวกและเท่ากับ ช่วยลดเวลาในการอัปเดต ในขณะที่ตัวดำเนินการแบบบิตไวส์จะทำงานกับบิตแต่ละบิตของค่าจำนวนเต็ม
  • 🔢 ลำดับความสำคัญ: Operaลำดับความสำคัญและความสัมพันธ์ของคำสั่ง tor จะกำหนดลำดับที่ภาษา C# ประเมินส่วนต่างๆ ของนิพจน์ที่ซับซ้อน
  • 🤖 ความช่วยเหลือจากเอไอ: GitHub Copilot และ ML.NET ช่วยสร้างการประกาศตัวแปร ตรรกะของตัวดำเนินการ และแมปค่าต่างๆ เข้ากับคุณลักษณะของแมชชีนเลิร์นนิง

ตัวแปรในภาษา C# และ Operaโปร

ตัวแปร C#

ตัวแปรคือชื่อที่กำหนดให้กับพื้นที่เก็บข้อมูลซึ่งใช้ในการจัดเก็บค่าของข้อมูลประเภทต่างๆ ตัวแปรแต่ละตัวใน C# จำเป็นต้องมีประเภทเฉพาะ ซึ่งกำหนดขนาดและเค้าโครงของหน่วยความจำของตัวแปร

ตัวอย่างเช่น ตัวแปรสามารถเป็นชนิด String ซึ่งหมายความว่าตัวแปรจะถูกใช้เพื่อเก็บค่าสตริง โดยขึ้นอยู่กับชนิดข้อมูล การดำเนินการเฉพาะสามารถดำเนินการกับตัวแปรได้

ตัวอย่างเช่น ถ้าเรามีตัวแปรประเภทจำนวนเต็ม เราก็สามารถดำเนินการต่างๆ เช่น การบวกและการลบได้tracสามารถดำเนินการกับตัวแปรได้ และสามารถประกาศตัวแปรได้หลายตัวในโปรแกรมเดียว

ลองดูตัวอย่างสั้นๆ ของการประกาศตัวแปรหลายตัวในประเภทข้อมูลที่แตกต่างกัน

ในตัวอย่างของเรา เราจะกำหนดตัวแปรสองตัว โดยชนิดหนึ่งคือ 'string' และอีกชนิดหนึ่งคือ 'Integer' จากนั้นเราจะแสดงค่าของตัวแปรเหล่านี้ไปยังคอนโซล สำหรับแต่ละตัวอย่าง เราจะแก้ไขเฉพาะฟังก์ชันหลักในไฟล์ Program.cs ของเรา

ตัวแปร C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   String message="The value is ";
   Int32 val=30;
   
   Console.Write(message+val);
   Console.ReadKey();
  }
 }
}

Code คำอธิบาย:-

  1. มีการประกาศตัวแปรประเภทข้อมูล String ชื่อของตัวแปรคือ 'ข้อความ' ค่าของตัวแปรคือ “ค่าคือ “
  2. มีการประกาศตัวแปรประเภทข้อมูล Integer (Int32) ชื่อของตัวแปรคือ 'val' ค่าของตัวแปรคือ 30
  3. ในที่สุดคำสั่ง Console.write จะใช้ในการส่งออกทั้งค่าของตัวแปร String และ Integer

หากป้อนโค้ดด้านบนถูกต้องแล้วและโปรแกรมทำงานสำเร็จจะแสดงผลลัพธ์ต่อไปนี้

Output:

ตัวแปร C#

จากเอาต์พุต คุณจะเห็นว่าค่าของตัวแปรทั้งสตริงและจำนวนเต็มจะถูกแสดงไปยังคอนโซล

เมื่อตัวแปรสามารถเก็บค่าได้แล้ว ขั้นตอนต่อไปคือการนำค่าเหล่านั้นไปใช้ประโยชน์ Operaตัวดำเนินการ (tors) ใช้สำหรับดำเนินการกับค่าของชนิดข้อมูลต่างๆ ตัวอย่างเช่น ในการบวกเลข 2 ตัว จะใช้ตัวดำเนินการ +

มาดูตารางตัวดำเนินการที่มีให้ใช้งานต่างๆ กัน ประเภทข้อมูล.

C# Operaโปร

คณิตศาสตร์ Operaโปร

ตัวดำเนินการเหล่านี้ใช้สำหรับดำเนินการทางคณิตศาสตร์กับตัวเลข ด้านล่างนี้คือรายการตัวดำเนินการที่มีอยู่ใน C#.

OperaTor Descriptไอออน
+ เพิ่มตัวดำเนินการสองตัว
- ตtracts คือตัวถูกดำเนินการตัวที่สองนับจากตัวแรก
* คูณตัวถูกดำเนินการทั้งสอง
/ หารตัวเศษด้วยตัวเศษ
% โมดูลัส Operator และส่วนที่เหลือหลังจากการหารจำนวนเต็ม
++ ตัวดำเนินการเพิ่มจะเพิ่มค่าจำนวนเต็มหนึ่ง
- ตัวดำเนินการลดค่าจะลดค่าจำนวนเต็มลงหนึ่ง

เชิงสัมพันธ์ Operaโปร

ตัวดำเนินการเหล่านี้ใช้สำหรับการดำเนินการเชิงสัมพันธ์กับตัวเลข ด้านล่างนี้คือรายการตัวดำเนินการเชิงสัมพันธ์ที่มีใน C#

OperaTor Descriptไอออน
== ตรวจสอบว่าค่าของตัวดำเนินการสองตัวเท่ากันหรือไม่ ถ้าเท่ากันเงื่อนไขจะกลายเป็นจริง
!= ตรวจสอบว่าค่าของตัวดำเนินการสองตัวเท่ากันหรือไม่ หากค่าไม่เท่ากันเงื่อนไขจะกลายเป็นจริง
> ตรวจสอบว่าค่าของตัวดำเนินการทางด้านซ้ายมากกว่าค่าของตัวดำเนินการทางด้านขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง
< ตรวจสอบว่าค่าของตัวดำเนินการด้านซ้ายน้อยกว่าค่าของตัวดำเนินการด้านขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง
>= ตรวจสอบว่าค่าของตัวดำเนินการทางด้านซ้ายมากกว่าหรือเท่ากับค่าของตัวดำเนินการทางด้านขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง
<= ตรวจสอบว่าค่าของตัวดำเนินการทางด้านซ้ายน้อยกว่าหรือเท่ากับค่าของตัวดำเนินการทางด้านขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง

ตรรกะ Operaโปร

ตัวดำเนินการเหล่านี้ใช้สำหรับดำเนินการทางตรรกะกับค่าต่างๆ ด้านล่างนี้คือรายการตัวดำเนินการที่มีใน C#

OperaTor Descriptไอออน
&& นี่คือตัวดำเนินการแบบตรรกะ AND หากตัวดำเนินการทั้งสองเป็นจริง เงื่อนไขจะกลายเป็นจริง
|| นี่คือตัวดำเนินการแบบตรรกะ OR หากตัวดำเนินการตัวใดตัวหนึ่งเป็นจริง เงื่อนไขจะกลายเป็นจริง
! นี่คือตัวดำเนินการ NOT แบบตรรกะ

มาดูตัวอย่างสั้นๆ เกี่ยวกับการใช้งานตัวดำเนินการใน .NET กัน

ในตัวอย่างนี้ เราจะกำหนดตัวแปรจำนวนเต็ม 2 ตัว และตัวแปรบูลีน 1 ตัว จากนั้นเราจะทำการคำนวณทางคณิตศาสตร์ การหาความสัมพันธ์ และการคำนวณเชิงตรรกะกับตัวแปรเหล่านั้น

C# Operaโปร

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 val1 = 10,val2 = 20;
   bool status = true;
   
   Console.WriteLine(val1 + val2);
   Console.WriteLine(val1 < val2);
   Console.WriteLine(!(status));
   Console.ReadKey();
  }
 }
}

Code คำอธิบาย:-

  1. มีการกำหนดตัวแปรจำนวนเต็มสองตัว โดยตัวหนึ่งคือ val1 และอีกตัวหนึ่งคือ val2 ตัวแปรเหล่านี้จะใช้เพื่อแสดงการดำเนินการเชิงสัมพันธ์และเลขคณิต ตัวแปรบูลีนถูกกำหนดขึ้นเพื่อแสดงการดำเนินการเชิงตรรกะ
  2. ตัวอย่างการดำเนินการทางคณิตศาสตร์แสดงไว้ โดยที่ตัวดำเนินการบวกจะดำเนินการกับ val1 และ val2 ผลลัพธ์จะถูกเขียนลงในคอนโซล
  3. ตัวอย่างการดำเนินการเชิงสัมพันธ์จะแสดงขึ้น โดยตัวดำเนินการน้อยกว่าจะดำเนินการกับ val1 และ val2 ผลลัพธ์จะถูกเขียนลงในคอนโซล
  4. ตัวอย่างการดำเนินการเชิงตรรกะจะแสดงขึ้น โดยที่ตัวดำเนินการเชิงตรรกะ (!) จะถูกใช้กับตัวแปรสถานะ ตัวดำเนินการ NOT เชิงตรรกะจะย้อนกลับค่าปัจจุบันของค่าบูลีนใดๆ ดังนั้น หากค่าบูลีนเป็น 'จริง' ตัวดำเนินการ NOT เชิงตรรกะจะส่งคืนค่า 'เท็จ' และในทางกลับกัน ในกรณีของเรา เนื่องจากค่าของตัวแปรสถานะเป็น 'จริง' ผลลัพธ์จะแสดงเป็น 'เท็จ' ผลลัพธ์จะถูกเขียนลงในคอนโซล

หากป้อนโค้ดด้านบนถูกต้องแล้วและโปรแกรมทำงานสำเร็จจะแสดงผลลัพธ์

Output:

C# Operaโปร

งานมอบหมาย C# Operaโปร

ตัวดำเนินการกำหนดค่าจะเก็บผลลัพธ์ของนิพจน์ไว้ในตัวแปร ตัวดำเนินการกำหนดค่าพื้นฐานคือเครื่องหมายเท่ากับตัวเดียว และ C# ยังมีตัวดำเนินการแบบผสมที่รวมการกำหนดค่ากับการดำเนินการทางคณิตศาสตร์หรือการดำเนินการแบบบิต ตัวดำเนินการแบบย่อเหล่านี้ทำให้คำสั่งอัปเดตสั้นและอ่านง่าย

OperaTor Descriptไอออน
= กำหนดค่าของตัวถูกดำเนินการด้านขวาให้กับตัวถูกดำเนินการด้านซ้าย
+= บวกตัวถูกดำเนินการทางขวาเข้ากับตัวถูกดำเนินการทางซ้าย แล้วกำหนดผลลัพธ์ให้
-= ตtracคัดลอกตัวถูกดำเนินการทางขวาจากตัวถูกดำเนินการทางซ้ายและกำหนดผลลัพธ์ให้
*= คูณตัวถูกดำเนินการทั้งสองตัวและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย
/= หารตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวา แล้วกำหนดผลลัพธ์ให้
%= นำค่าโมดูลัสของตัวถูกดำเนินการทั้งสองมาหารด้วยตัวถูกดำเนินการตัวอื่น แล้วกำหนดเศษที่เหลือให้กับตัวถูกดำเนินการตัวซ้าย

ตัวอย่างเช่น การเขียน count += 5 เป็นวิธีที่สั้นกว่าการเขียน count = count + 5 ตัวดำเนินการกำหนดค่าแบบผสมสามารถทำงานร่วมกับตัวดำเนินการทางคณิตศาสตร์ทุกตัว รวมถึงตัวดำเนินการบิตไวส์ด้วย ดังนั้นจึงมักปรากฏอยู่ภายในลูปและตัวนับที่ค่าถูกอัปเดตซ้ำๆ

C# บิตไวส์ Operaโปร

ตัวดำเนินการบิตไวส์จะทำงานกับบิตแต่ละบิตของค่าจำนวนเต็ม แทนที่จะทำงานกับจำนวนทั้งหมด จึงมีประโยชน์สำหรับงานระดับต่ำ เช่น การตั้งค่าแฟล็ก การซ่อนค่า และการคูณหรือหารอย่างรวดเร็วด้วยกำลังของสอง

OperaTor Descriptไอออน
& การดำเนินการ AND แบบบิตไวส์จะกำหนดค่าบิตผลลัพธ์แต่ละบิตให้เป็น 1 ก็ต่อเมื่อบิตที่ตรงกันทั้งสองบิตเป็น 1 เท่านั้น
| การดำเนินการ Bitwise OR จะกำหนดค่าบิตผลลัพธ์แต่ละบิตเป็น 1 เมื่อบิตใดบิตหนึ่งที่ตรงกันเป็น 1
^ การดำเนินการ XOR แบบบิตไวส์จะกำหนดค่าบิตผลลัพธ์แต่ละบิตเป็น 1 ก็ต่อเมื่อบิตที่ตรงกันทั้งสองบิตนั้นแตกต่างกัน
~ การผกผันบิต (Bitwise complement) จะกลับค่าบิตทุกบิตของตัวถูกดำเนินการตัวเดียว
<< การเลื่อนบิตไปทางซ้ายจะเลื่อนบิตไปทางซ้ายและเติมเลขศูนย์ลงในตำแหน่งว่าง
>> การเลื่อนบิตไปทางขวาจะเลื่อนบิตไปทางขวาตามจำนวนตำแหน่งที่กำหนด

ตัวอย่างเช่น นิพจน์ 5 & 3 เปรียบเทียบค่าบิตของตัวเลขทั้งสองและส่งคืนค่า 1 เนื่องจากการเลื่อนบิตไปทางซ้ายเพียงครั้งเดียวจะเพิ่มค่าเป็นสองเท่า ตัวดำเนินการบิตจึงสามารถคำนวณบางอย่างได้เร็วกว่าการคำนวณทางคณิตศาสตร์แบบเดียวกัน ซึ่งมีความสำคัญในด้านกราฟิกและโค้ดฝังตัว

C# Operaลำดับความสำคัญและการเชื่อมโยง

เมื่อนิพจน์มีตัวดำเนินการหลายตัว C# จะไม่ประเมินค่าตัวดำเนินการเหล่านั้นจากซ้ายไปขวาเพียงอย่างเดียว Operaลำดับความสำคัญของตัวดำเนินการ (tor precedence) กำหนดลำดับการทำงานของตัวดำเนินการต่างๆ และการเชื่อมโยง (associativity) กำหนดลำดับเมื่อตัวดำเนินการสองตัวมีลำดับความสำคัญเดียวกัน

  • ลำดับความสำคัญ: การคูณและการหารจะทำก่อนการบวกและการหารtracดังนั้น 2 + 3 * 4 จึงได้ 14 ไม่ใช่ 20
  • การเชื่อมโยงทางซ้าย: ตัวดำเนินการไบนารีส่วนใหญ่จะจัดกลุ่มจากซ้ายไปขวา ดังนั้น a – b – c จะถูกประเมินเป็น (a – b) – c
  • การเชื่อมโยงที่ถูกต้อง: ตัวดำเนินการกำหนดค่าและเงื่อนไขจะจัดกลุ่มจากขวาไปซ้าย ดังนั้น x = y = z จะกำหนดค่า z ให้กับ y ก่อน
  • วงเล็บ: ห่อping ส่วนหนึ่งของนิพจน์ที่อยู่ในวงเล็บจะแทนที่ลำดับเริ่มต้นและทำให้การคำนวณที่ต้องการชัดเจนยิ่งขึ้น

การใช้วงเล็บแทนการท่องจำตารางลำดับความสำคัญทั้งหมด ช่วยให้ข้อความที่ซับซ้อนอ่านง่ายขึ้น และช่วยป้องกันข้อผิดพลาดในการคำนวณเล็กน้อยได้

คำถามที่พบบ่อย

ตัวแปรสามารถเปลี่ยนแปลงค่าได้ในระหว่างการประมวลผล ในขณะที่ค่าคงที่ ซึ่งประกาศด้วยคีย์เวิร์ด `const` จะมีค่าคงที่ตั้งแต่ตอนคอมไพล์และไม่เปลี่ยนแปลง ควรใช้ตัวแปรสำหรับข้อมูลที่เปลี่ยนแปลงได้ และใช้ค่าคงที่สำหรับค่าที่ไม่เปลี่ยนแปลง เช่น ค่า Pi

คีย์เวิร์ด `var` ช่วยให้คอมไพเลอร์อนุมานชนิดของตัวแปรโลคอลจากค่าเริ่มต้นของมัน ดังนั้น `var count = 10` จะสร้างตัวแปรชนิด `int` ขึ้นมา ตัวแปรนั้นยังคงมีชนิดที่กำหนดไว้อย่างชัดเจน `var` เพียงแค่ช่วยลดความจำเป็นในการเขียนชื่อชนิดอย่างชัดเจนเท่านั้น

เครื่องหมายเท่ากับเดี่ยวคือตัวดำเนินการกำหนดค่า ซึ่งใช้สำหรับเก็บค่าไว้ในตัวแปร ส่วนเครื่องหมายเท่ากับสองตัวคือตัวดำเนินการความเท่าเทียมกัน ซึ่งใช้เปรียบเทียบค่าสองค่าและส่งคืนค่าจริงหรือเท็จ การสับสนระหว่างสองอย่างนี้เป็นความผิดพลาดที่พบบ่อยในหมู่ผู้เริ่มต้น

ตัวดำเนินการเอกภาค (Unary Operator) ทำงานกับตัวถูกดำเนินการหนึ่งตัว เช่น ! สำหรับการปฏิเสธเชิงตรรกะ (Logical NOT) หรือ ++ สำหรับการเพิ่มค่า (Logical AND) ตัวดำเนินการทวิภาค (Binary Operator) ทำงานกับตัวถูกดำเนินการสองตัว เช่น + สำหรับการบวก หรือ && สำหรับ AND เชิงตรรกะ นอกจากนี้ C# ยังมีตัวดำเนินการเทอร์นารี (Ternary Operator) อีกหนึ่งตัว

ตัวดำเนินการแบบสามทาง ?: เป็นรูปแบบย่อของคำสั่ง if-else โดยจะประเมินเงื่อนไข แล้วส่งคืนค่าแรกเมื่อเงื่อนไขเป็นจริง และส่งคืนค่าที่สองเมื่อเงื่อนไขเป็นเท็จ เช่น int max = a > b ? a : b

ตัวดำเนินการรวมค่าว่าง ?? จะคืนค่าตัวถูกดำเนินการด้านซ้ายเมื่อค่านั้นไม่ใช่ค่าว่าง มิฉะนั้นจะคืนค่าตัวถูกดำเนินการด้านขวา ตัวอย่างเช่น name ?? “Guest” จะกำหนดค่าเริ่มต้นให้ ส่วนตัวแปร ??= จะกำหนดค่าเฉพาะเมื่อเป้าหมายเป็นค่าว่างเท่านั้น

ใช่แล้ว GitHub Copilot จะแนะนำการประกาศตัวแปร นิพจน์ตัวดำเนินการ และการกำหนดค่าแบบผสมภายใน Visual Studio และ VS Codeและสามารถคำนวณค่าจากข้อความแสดงความคิดเห็นได้ Revตรวจสอบคำแนะนำแต่ละข้อเกี่ยวกับประเภทข้อมูลที่ถูกต้องและลำดับความสำคัญที่ต้องการ

ไปป์ไลน์ของ ML.NET อาศัยตัวแปร C# ในการเก็บคุณลักษณะและป้ายกำกับ และตัวดำเนินการในการปรับค่าหรือรวมค่าเหล่านั้นก่อนการฝึกฝน ค่าตัวเลขและค่าบูลีนจะถูกแมปไปยังอินพุตของโมเดลได้อย่างราบรื่น ซึ่งทำให้เวิร์กโฟลว์การเรียนรู้ของเครื่องมีการกำหนดประเภทที่ชัดเจนและคาดเดาได้

สรุปโพสต์นี้ด้วย: