Object Class
อารยา ถาวรสิริจรัส 650710594
Object class เป็นคลาสพื้นฐานสำหรับทุกคลาสคลาสใน .NET Framework ซึ่งใน namespace จะมีชื่อว่า System โดยมีชื่อเต็มว่า System.object ซึ่งทุกคลาสในภาษา C# จะถูกสืบทอดทั้งทางตรงหรือทางอ้อมจาก object class ถ้าคลาสไหนไม่มีการ extend จากคลาสอื่นมันก็จะกลายเป็นคลาสลูกของ object class แต่ถ้ามีการ extend กับคลาสอื่นก็จะเป็นการสืบทอดทางอ้อม

C# จะมีข้อมูล 2 ประเภท คือ
Reference types Reference types จะสืบทอดจาก object class ได้ทั้งทางตรงหรือทางอ้อมผ่าน Reference types อื่นๆ
Value types ซึ่ง Value types จะสืบทอด object class ทางอ้อมผ่าน System.ValueType
เมธอดในคลาส Object
ของ C#
Object
ของ C# Equals(Object):
ตรวจสอบว่า object ที่ระบุเท่ากับ object ปัจจุบันมั้ย
Equals(Object, Object):
ตรวจสอบว่า object ทั้งสองที่ระบุมีค่าเท่ากันมั้ย
Finalize():
อนุญาตให้ object พยายามปล่อยทรัพยากรและทำการทำความสะอาดก่อนที่จะถูกจัดการโดย garbage collector
GetHashCode():
ทำหน้าที่เป็นฟังก์ชันแฮชเริ่มต้น
GetType():
คืนค่า Type ของอ็อบเจ็กต์ปัจจุบัน
ReferenceEquals(Object, Object):
ตรวจสอบว่า object ทั้งสองที่ระบุเป็น object เดียวกันมั้ย
ToString():
คืนค่าข้อความที่แสดงถึง object ปัจจุบัน
Example
public class WorkItem
{
private static int currentID;
protected int ID { get; set; }
protected string Title { get; set; }
protected string Description { get; set; }
protected TimeSpan jobLength { get; set; }
public WorkItem()
{
ID = 0;
Title = "Default title";
Description = "Default description.";
jobLength = new TimeSpan();
}
public WorkItem(string title, string desc, TimeSpan joblen)
{
this.ID = GetNextID();
this.Title = title;
this.Description = desc;
this.jobLength = joblen;
}
static WorkItem() => currentID = 0;
protected int GetNextID() => ++currentID;
public void Update(string title, TimeSpan joblen)
{
this.Title = title;
this.jobLength = joblen;
}
public override string ToString() =>
$"{this.ID} - {this.Title}";
}
public class ChangeRequest : WorkItem
{
protected int originalItemID { get; set; }
public ChangeRequest() {
}
public ChangeRequest(string title, string desc, TimeSpan jobLen,
int originalID)
{
this.ID = GetNextID();
this.Title = title;
this.Description = desc;
this.jobLength = jobLen;
this.originalItemID = originalID;
}
}
จากโค้ด ได้สร้าง class Work Item ซึ่งเป็น class ที่สืบทอดมาจาก System.Object โดยอัตโนมัติซึ่งเราไม่จำเป็นต้องเขียน :System.object ไว้ก็ได้ ซึ่ง class นี้มีเมธอด Greet() ต่อมาสร้าง class dog เป็น class ChangeRequest ที่ สืบทอดมาจาก class WorkItem มีการใช้ tostring() ซึ่งเป็นเมธอดในคลาส Object
เปรียบเทียบ Object class ใน ภาษา C# C++ Java Python
class Person(object):
def __init__(self, name):
self.name = name
def getName(self):
return self.name
def isEmployee(self):
return False
class Employee(Person):
# Here we return true
def isEmployee(self):
return True
emp = Person("Geek1")
print(emp.getName(), emp.isEmployee())
emp = Employee("Geek2")
print(emp.getName(), emp.isEmployee())
ในภาษาpython การสืบทอดจาก object class จะมีการใส่ (object) ตามหลังชื่อ class อย่างเช่น class Person(object) ถึงจะสามารถเรียกใช้ฟังก์ชันของ object class ได้ ส่วนในภาษา Java C# และ C++ จะสืบทอดโดยอัตโนมัติ เช่น java => class bicycle สืบทอดมาจาก java.lang.Object และมีการใช้ tostring() เป็นการแสดงถึงการใช้งานฟังก์ชันจาก object class C# => class Vehicle สืบทอดมาจาก System.Object ส่วน C++ class Parent สืบทอดมาจาก object class โดยอัตโนมัติ ทำให้มีสมบัติเป็น object class อยู่แล้ว
Output
Geek1 False
Geek2 True
Slide Presention
Video Presentation
Reference
Last updated