ตัวสร้างและสมาชิก static
สร้างอ็อบเจกต์ด้วยตัวสร้าง (รวมโอเวอร์โหลดและการเรียกต่อกัน) และใช้ฟิลด์/เมธอด static เพื่อเก็บข้อมูลที่อินสแตนซ์ทั้งหมดใช้ร่วมกัน
ตัวสร้างและสมาชิก static เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวมตัวสร้างและสแตติก
เป้าหมาย: สร้างออบเจ็กต์อย่างปลอดภัยและใช้ข้อมูลร่วมกันระหว่างอินสแตนซ์
- ตัวสร้างกำหนดสถานะที่จำเป็น
- โอเวอร์โหลดและการเชื่อมโยงด้วย this(...)
- ฟิลด์/เมธอดแบบ สแตติกที่ออบเจ็กต์ทั้งหมดใช้ร่วมกัน
ตัวสร้างพื้นฐาน
ตัวสร้างจะทำงานเมื่อคุณเรียกใช้ new และเริ่มต้นค่าให้ออบเจ็กต์
using System;
// Constructor sets required data on creation
public class User
{
public string Name { get; private set; }
public int Age { get; private set; }
public User(string name, int age)
{
Name = name;
Age = age;
}
}
public class Program
{
public static void Main(string[] args)
{
User u = new User("Ada", 28);
Console.WriteLine(u.Name + " (" + u.Age + ")");
}
}
โอเวอร์โหลดและการเชื่อมโยง
ใช้ โอเวอร์โหลดตัวสร้างเพื่อความสะดวก และใช้ this(...) เพื่อใช้ตรรกะเดิมซ้ำ
using System;
// Overloads let you offer defaults; chain with this(...)
public class Point2D
{
public int X { get; private set; }
public int Y { get; private set; }
public Point2D(int x, int y)
{
X = x; Y = y;
}
public Point2D(int xy) : this(xy, xy) { } // calls the main constructor
}
public class Program
{
public static void Main(string[] args)
{
Point2D p1 = new Point2D(3, 4);
Point2D p2 = new Point2D(5); // becomes (5,5)
Console.WriteLine("p1: " + p1.X + "," + p1.Y);
Console.WriteLine("p2: " + p2.X + "," + p2.Y);
}
}
สมาชิกแบบสแตติก
สมาชิกแบบ สแตติกจะใช้ร่วมกันโดยทุกอินสแตนซ์ เรียกใช้เมธอดแบบสแตติกผ่านชื่อชนิดข้อมูล
using System;
// Static members live on the type (one copy shared)
public class Counter
{
private static int _created = 0; // shared count
public int Id { get; private set; }
public Counter()
{
_created = _created + 1;
Id = _created;
}
public static int CreatedCount()
{
return _created;
}
}
public class Program
{
public static void Main(string[] args)
{
Counter a = new Counter();
Counter b = new Counter();
Console.WriteLine("a.Id=" + a.Id + ", b.Id=" + b.Id);
Console.WriteLine("Total created = " + Counter.CreatedCount());
}
}
ตัวสร้างแบบสแตติกและค่าคงที่
ตัวสร้างแบบสแตติกจะทำงานหนึ่งครั้งต่อชนิดข้อมูล ใช้ const สำหรับค่าคงที่ขณะคอมไพล์ และใช้ static readonly สำหรับค่าที่กำหนดขณะรันไทม์
using System;
public class AppConfig
{
public const string AppName = "Demo"; // compile-time constant
public static readonly DateTime StartedAt; // runtime-initialized once
// Static constructor: runs once before first use of the type
static AppConfig()
{
StartedAt = DateTime.UtcNow;
}
public static string Info()
{
return AppName + " started at " + StartedAt.ToString("u");
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(AppConfig.Info());
Console.WriteLine(AppConfig.Info()); // static ctor ran only once
}
}
เคล็ดลับ
เคล็ดลับ:
- ทำให้ตัวสร้างมีขนาดเล็ก และตรวจสอบอินพุตตั้งแต่เนิ่น ๆ
- ใช้ โอเวอร์โหลดสำหรับค่าเริ่มต้นที่ใช้บ่อย แล้วเชื่อมโยงไปยังตัวสร้างหลักเพียงตัวเดียว
- ใช้ สแตติกเมื่อข้อมูลเป็นของชนิดข้อมูลนั้นอย่างแท้จริง เช่น ตัวนับและตัวช่วย
แนวคิดสมาชิกแบบสแตติก
ทบทวน
ทบทวน: ใช้ตัวสร้างเพื่อกำหนดสถานะที่จำเป็น ใช้โอเวอร์โหลดและการเชื่อมโยงเพื่อความสะดวก และเพิ่มสมาชิกแบบ สแตติกสำหรับข้อมูลหรือตัวช่วยที่ออบเจ็กต์ทั้งหมดใช้ร่วมกัน
คำถามที่พบบ่อย
บทเรียน “ตัวสร้างและสมาชิก static” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวสร้างและสมาชิก static” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวสร้างและสมาชิก static”
สร้างอ็อบเจกต์ด้วยตัวสร้าง (รวมโอเวอร์โหลดและการเรียกต่อกัน) และใช้ฟิลด์/เมธอด static เพื่อเก็บข้อมูลที่อินสแตนซ์ทั้งหมดใช้ร่วมกัน คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน
บทเรียน “ตัวสร้างและสมาชิก static” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ฟิลด์ คุณสมบัติอัตโนมัติ และตัวเริ่มต้นอ็อบเจกต์
- ตัวสร้างและสมาชิก static
- การห่อหุ้มและเงื่อนไขคงที่