برای ارتباط با مدیر سایت از ID تلگرام ebrahimi_younes@ استفاده نمایید. به سوالات و مشکلات برنامه نویسی پاسخ داده نمی شود.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. seyedhosseinhosseinikhalili پاسخ دادن

    جناب ابراهیمی با سلام
    در جایی سورس متد ()GetPersonList موجود نیست

  2. seyedhosseinhosseinikhalili پاسخ دادن

    باسلام
    به نظرمیایدعبارت
    در مثال بالا با استفاده از متد CompareTo کلاس String
    باید باعبارت زیرتعویض شود
    در مثال بالا با استفاده از متد Compare متعلق به کلاس FirstNameComparer

    • یونس ابراهیمی پاسخ دادن

      سلام ، اگر امکان داره بیشتر توضیح بدین ، واضح توضیح ندادین . ولی بررسیش کردم مشکلی نداشت

  3. seyedhosseinhosseinikhalili پاسخ دادن

    اسم متد در FirstNameCompareبه نام compare است شما در متن به آن اشاره دارین

  4. seyedhosseinhosseinikhalili پاسخ دادن
    class FirstNameComparer : IComparer
    {
        public int Compare(Person x, Person y) 
        { 
            return x.FirstName.CompareTo(y.FirstName); 
        }
    }

    جناب ابراهیمی در سورس بالا اسم کلاس و اسم متد چیست
    ایا اسم متد CompareToهست ایا اسم کلاس آن String هست

  5. seyedhosseinhosseinikhalili پاسخ دادن

    تازه خود کلاس string هم دارای متدی به نام CompareTo نیست بلکه این کلاس داری متد به نام Compare هست

  6. یونس ابراهیمی پاسخ دادن

    متد CompareTo روی خاصیت FirstName فراخوانی شده است . این خاصیت از نوع string هست و چون متد CompareTo داخل کلاس string تعریف شده پس می تونید روی خاصیت FirstName فراخوانیش کنید . کلاس string دارای متد CompareTo هست.
    متد Compare در اینترفیس IComparer قرار داره . این Interface رو داخل کلاس FirstNameComparer پیاده سازی کردیم و داخل متد Compare از متد CompareTo کلاس string استفاده کردیم .

  7. یونس ابراهیمی پاسخ دادن

    به این نکته توجه کنید : خاصیت FirstName از نوع string هست . این کلاس دارای متد CompareTo هست به همین دلیل می تونید رو خاصیت FirstName فراخوانیش کنید

  8. seyedhosseinhosseinikhalili پاسخ دادن

    ما در کلاس string متد Compareداریم متدCompareTo نداریم
    همین الان تست کردم

  9. seyedhosseinhosseinikhalili پاسخ دادن

    سلام جناب ابراهیمی همین الان لینک بالا را دیدم فقط گزینه های گوناگون مربوط به
    متد ()Compare را داشت

    • وحید باقی پاسخ دادن

      سلام
      شما به این موضوع دقت نکردید.string یا بهتره بگم کلاس string داخلش متد static به نام string.Compare داره ولی تو این مثال FirstName یک شی از کلاس string هست و متد compareTo از متد های غیر static کلاس string هست.
      بنده هم الان امتحان کردم و متدی به نام CompareTo وجود دارد.
      جمع بندی اینکه متد Compare یکی از متد های static کلاس string هست و فقط با استفاده از خود کلاس قابل دسترسی هست و CompareTo متد غیر static هست و برای دسترسی بهش باید یک شی تعریف کنید از کلاس مربوطه که اینجا هم دقیقا درست هست.

    • وحید باقی پاسخ دادن

      همچنین در لینکی که بالا تر آقای ابراهیمی قرار دادند اگر با دقت نگاه می کردید متدCompareTo هم وجود داشته.لینک زیر رو ببینید.من از همون لینکی که آقای ابراهیمی قرار داند این رو کلیک کردم.

      https://msdn.microsoft.com/en-us/library/35f0x18w(v=vs.110).aspx

      اینکه در سایت بالا نوشته شده String.CompareTo به این معنی نیست که با استفاده از خود کلاس string می توان به این متد دسترسی پیدا کرد.و صرفا برای اینکه نشان بدهد بخشی از این کلاس هست به این صورت نوشته شده.در همین لینک اگر پایین تر کدی که نوشته شده رو ببنید می بینید که static نیست پس برای دسترسی به اون حتما باید یک متغیر از string درست کنید