کلاس آبجکت(System.Object Class)

همه کلاسهای دات نت از کلاس آبجکت (System.Object) ارث می‌برند. کلاس آبجکت در سی شارپ با کلمه کلیدی object نشان داده می‌شود. برای راحتی در این درس از کلمه آبجکت به جای System.Object استفاده می‌کنیم. در زیر لیست برخی از متدهای معمول در کلاس آبجکت آمده است :

متد نوع برگشتی Virtual Static
Object() None No No
~Object() None No No
Equals(object) bool Yess No
Equals(object, object) bool No Yes
ReferenceEquals
(object,object)
bool No Yes
ToString() string Yes No
MemberwiseClone() object No No
GetType() System.Type No No
GetHashCode() int Yes No

همه متدهای این کلاس معمولاً مورد استفاده قرار نمی‌گیرند. از آنجاییکه همه کلاسهای سی شارپ از این کلاس ارث می‌برند، آن‌ها نیز دارای این متدها به جز متدهای Static می‌باشند. وقتی یک کلاس ایجاد می‌کنید، این کلاس به صورت ضمنی از کلاس آبجکت ارث می‌برد. بنابراین وقتی یک کلاس تعریف می‌کنید کدها در حقیقت به صورت زیر به وسیله کامپایلر خوانده می‌شوند :

class MyClass : System.Object
{
}

اینکه چرا همه کلاسها در دات نت از object ارث بری می‌کنند به دلیل امکان استفاده از چندریختی است که در درس آینده درباره آن توضیح می‌دهیم. به عنوان مثال یکی از سربارگذاری های متد Console.WriteLine() قبول نوع آبجکت به عنوان آرگومان است. به همین دلیل است که شما می‌توانید تقریباً هر چیز را به عنوان آرگومان به متد Console.WriteLine() ارسال کنید. برای نشان دادن اینکه هر چیز در سی شارپ یک شیء است به مثال ساده زیر توجه کنید :

   1: using System;
   2: 
   3: public class Program
   4: {
   5:     public static void Main()
   6:     {
   7:         int myInt = 1;
   8:         double myDouble = 4.0;
   9:         string myString = "Hello";
  10: 
  11:         Console.WriteLine(myInt.ToString());
  12:         Console.WriteLine(myDouble.ToString());
  13:         Console.WriteLine(myString.ToString());
  14:     }
  15: }

همانطور که مشاهده می‌کنید اشیاء int ،double و string همگی متد ToString() را فراخوانی می‌کنند که این متد از کلاس object به ارث برده شده است.