آموزش سی شارپ C# – بخش ۴۹

آموزش سی شارپ C# – بخش ۴۹
  • 1392/6/21
  • Jeff Mosawy
  • 45
  • مقدمه

در ادامه بحث‌های فعلی‌ ای که در رابطه با زبان برنامه نویسی سی‌شارپ داشته‌ایم، در بخش پیشین با متد Contains آشنا شده‌اید؛ در این بخش، شما با متد جدیدی به نام IndexOf آشنا خواهید شد. پس با ما باشید.

  • متد IndexOf

متد IndexOf می تواند زمانی مورد استفاده شما قرار گیرد که بخواهیم بررسی کنیم که آیا کارکتری در بین کارکتر دیگری وجود دارد یا نه. برای مثال، در نظر بگیرید که شما بخواهید یک ایمیلی که توسط فردی وارد شده است را بررسی کنید که آیا حاوی کارکتر @ هست یا نه؛ اگر وجود نداشت، شما می توانید برای کاربر پیامی صادر کنید تا ادرس ایمیل خود را به دلیل اشتباه بودن آن ، تصحیح کند.

به فرمی که در پیش داشته ایم، یک button و یک text box جدید اضافه کنید. مشخصه ی text مربوط به Text box را یک ایمیل وارد کنید. بر روی button خود دابل کلیک کنید تا وارد بخش کدنویسی آن شوید. کد ها را مطابق با تصویر زیر وارد نمایید :

1-string_indexof

اولین موردی که می بایست درباره آن توضیحاتی دهم، این است که IndexOf چگونه کار می کند. به این خط از کد دقت کنید:

int result = stringEmail.IndexOf(“@”);

متد IndexOf، مقداری از نوع int بر میگرداند. این شماره، محل قرارگیری کارکتر مورد نظر شما در کلمه ی وارد شده می باشد. در کد بالا، ما می خواهیم که کلمه ای را بررسی کنیم که در متغیری با نام stringEmail ذخیره شده است. ما در واقع می خواهیم بررسی کنیم و ببینیم که آیا متن ما حاوی @ می باشد یا نه! این مقدار در بین پرانتزهای مربوط به متد IndexOf قرار می گیرد. اگر که C# (سی‌شارپ) کارکتر مورد نظر را پیدا کند، محل قرارگیری آن را به شما خواهد گفت. این شما در نهایت در متغیری از نوع Int ذخیره شده که ما آن را با نام result ایجاده کرده ایم. اگر که کارکتری که شما به دنبال آن بودید در متن مورد نظر شما وجود نداشته باشد، متد IndexOf مقدار -۱ (منفی یک) را بر می گرداند.

کد شرطی ما (if) که در کدهای بالا می بینید، در حال بررسی مقدار result است. اگر که مقدار -۱ باشد، متوجه می شویم که کارکتر مورد نظر شما وجود ندارد، در غیراینصورت، کارکتر مورد نظر در محلی که در result ذخیره می شود، موجود است.

از برنامه ای که تهیه کرده اید یک اجرا بگیرید؛ بر روی Button جدیدی که ایجاد کرده اید کلیک کنید. نتیجه باید مشابه نتیجه پایین شده باشد:

اگر ایمیل وارد شده دارای کاکتر @ باشد:

2-string_indexof_form

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 45 دیدگاه
  1. با سلام
    اول بابت آموزش سی شارپ ، تشکر !
    من نرم افزارای جالبی دیدم که با سی شارپ نوشته شده بودن ، مثلا یکیشون نرم افزار ضبط صدا بود .
    خواستم بدونم شما مرجعی میشناسید که متدهای کتابخونه ها رو معرفی کرده باشه ؟
    مثلا همین نرم افزار ضبط صدا رو میشه با چه متدی نوشت ؟
    ممنون

    1. سلام دوست عزیزم،

      ممنونم از لطف شما، خواهش می‌کنم!
      مرجع خاصی در ذهن ندارم! در رابطه با نوشتن یک نرم‌افزار ضبط صدا، احتمالاً از DirectX یا XNA Framework استفاده کرده است.
      موفق باشید!

    2. با سلام و تشکر فراوان از زحمت های شما
      من یه سوالی دارم …یعنی یه برنامه ای میخوام بنویسم که خود اون نرم افزار بر روی مکان مشخصی از صفحه نمایش کلیک کند( و هم دابل کلیک)
      و ما تعداد دفعات کلیک و مختصات رو به نرم افزار بدهیم تا نرم افزار بر روی آن کلیک کند
      اگه راهنمایی کنید ممنون میشم
      fox11101@yahoo.oc

  2. سلام
    فکر کنم مثالی که زده شد زیاد برای نمونه کدها مناسب نیست جون برای تست ایمیل شرایطی دیگری هم ملاک هستش.
    ولی مفهوم IndexOf رو خیلی خوب بیان کردید.
    ممنون
    mhsmity@yahoo.com

  3. سلام ببخشید من یه سوال فتوشاپی داشتم میخواستم بدونم چجوری میتونم یه برش بصورت رعد و برق در عکسم ایجاد کنم؟ ممنون میشم راهنماییم کنید

    1. سلام دوست عزیزم،

      لطفاً به عناوین مطالب دقت بفرمایید؛ بنده در فتوشاپ متخصص نیستم.
      موفق باشید!

  4. با سلام
    بنده یهک سوال داشتم که شاید به این قسمت ها مربوط نباشه و شایدم من هنوز نرسیدم به قسمت های جلو ولی در هر حال میشه بدونم اگه بخوایم با C# نرم افزاری طراحی کنیم که اطلاعات کاربران رو ذخیره کنه و بتونیم در موارد نیاز اطلاعات کاربران رو بر اساس سال و … استخراج کنیم . میخواستم بدونم چه کار هایی باید بلد باشیم ؟ پایگاه داده هم نیازه ؟
    میبخشید ولی تا چه قسمتی رو بخونم میتونیم یه چنین پروژه ای رو انجام بدم

    ممنون از همه آموزش های عالی تون و وقتی که برای نوشتن و کاربر ها میزارید 😉

    1. سلام دوست عزیزم،

      شما می‌توانید استفاده از دیتابیس Microsoft SQL Server رو شروع کنید و نحوه‌ی کارکردن با آن در سی‌شارپ رو یاد بگیرید، خواهید توانست که اطلاعات کاربران را در دیتابیس ذخیهر کنید و بعدش هم فراخوانی کنید در مواقع نیاز.
      موفق باشید!

  5. سلام دوست عزیز واقعا خسته نباشید , کارتون عالیه
    فقط تورو خدا منو نجات بدید من خیلی کلافه شدم به این دلایل
    ١ – اصلا پی دی اف 25 را پیدا نکردم , در قسمت 25 شما پی دی اف 24 رو گذاشتید , پس خود 25 چی ؟!
    ٢- بخش 45 رو بطور کلی پیدا نمیکنم چه رسد به پی دی اف ! حتی از طریق منوی آموزش و برنامه نویسی
    ٣ – این دو بخش 47 , 48 اصلا پی دی اف نداره

    دستت طلا دوست کوشای من .

    1. سلام دوست عزیزم،

      من در اسرع وقت بررسی می‌کنم و نتیجه رو به اطلاع شما خواهم رساند.
      موفق باشید!

    2. سلام دوست عزیز , آقا فرمودید در اسرع وقت بررسی میفرمایید و جواب میدید … !
      اون موارد که عرض کردم رو لطف کنید ممنون میشم

    1. سلام دوست عزیزم،

      نه دوست عزیز، اما متأسفانه برای چند هفته مشکلی داشتم که قادر به نوشتن بخش‌های بعدی نبودم. انشاءالله از فردا مجدداً شروع خواهم کرد. برایم دعا کنید.
      موفق باشید!

    1. سلام دوست عزیزم،

      متأسفانه برای چند هفته مشغله‌های کاری زیادی داشتم که متأسفانه توانایی قراردادن آموزش‌ها را نداشته‌ام. انشاءالله از فردا مجدداً شروع خواهم کرد
      موفق و موید باشید!

  6. سلام . با عرض تشکر از مطالب بسیار خوب سایت شما
    ببخشید اگر بخواهیم پیغامی مثل مدل پیغام بالا به کاربر نشان دهیم ، با این تفاوت که پیغام ما در همان یکبار نمایش سه جمله در سه خط باشد ، چه تغییراتی باید انجام بدهیم ؟
    الان پیغام شما در مثال بالایی یک جمله در یک خط است
    ممنون از زحمات شما

    1. سلام دوست عزیزم،

      خدمت شما: https://www.gooyait.com/1391/11/21/c-sharp-tutorial-part-16.html

  7. سلام فکر می کنم منو یادتون باشه (تو بخش 36 کامنت جنجالی گذاشته بودم). می خواستم از شما واقعن تشکر کنم به خاطر تلاش مستمر و کاری که دارین می کنین. امیدوارم هرجا هستین در پناه خدا موفق باشین و زندگی روی زیبای خودش رو به شما نشون بده. وجود جوون هایی مثل شما باعث افتخاره.

    1. سلام دوست عزیزم،

      خیلی ممنونم از نظر لطف شما، منم به داشتن افراد بافرهنگی مثل شما افتخار می‌کنم.
      امیدوارم که هنوز مطالب رو دنبال کنید، چونکه آموزش‌ها تا به اینجا ختم نشده‌اند، انشاءالله از فردا بخش‌های بعدی قرار خواهند گرفت.
      موفق باشید!

  8. سلام واقعا می‌خواستم ازت تشکر کنم. من و رفیقم می‌خواستیم بریم کلاس، ولی خب بحث مالی پیش اومد، نتیجتآ رفیقم تنها رفت. تا این‌که شما رو پیدا کردم. واقعا ممنونم.تا این‌جا بخش17 هستم، گام به گام دارم میام جلو فقط دوتا سوال داشتم
    1- فرض کنید مثلا یه form داشته باشیم بعد یه button هم براش تشکیل دادیم، اگه بر روی button کلیک کنیم بره یه form دیگه.نمیدونم منظورم درست انتقال دادم یا نه. حالا من می‌خواستم بدونم چه‌جوری باید این‌کار رو کرد؟ نمی‌دونم تو بخش‌های آموزش هنوز بهش نرسیدم یا بعدا می‌خواید آموزش بدید.
    2- یه سوال دیگه هم داشتم که آیا در مورد “کلاس” آموزش دادین یا نه؟
    مرسی

    1. سلام با اجازه از استاد محترم برای این کار شما باید دو تا فرم ایجاد کنید همون طور که فرمودید تو ی فرم یک که buttonگذاشتید روش دابل کلیک میکنید تا وارد کد نویسش بشید
      مثلا نام فرم دو رو student اگر بخواهیم تو فرم یک وقتی دکمه رو باز کنیم به فرم شماره دو بره مینویسیم ;()student ob =new student
      ;()ob.showDialog
      توضیح یک متغیر است که به فرم student دسترسی داره به جای ob می تونید هراسمی که دوست داشتین بزارین

    2. خیلی ممنون از شما آقای ابراهیم و آقا/خانم مقدم.
      بله درست شد. و با اضافه کردن این کد در ادامه کدها
      ;()this.hide
      وقتی روی button کلیک شود به form2 می‌رود و form1 پنهان خواهد شد.
      یه سوال دیگه هم داشتم که آیا اشیای form1 برای form2 قابل شناسایی است
      یعنی مثلا اگه یه تکست باکس توی form1 داشته باشیم، form2 می‌تونه اونو بشناسه یا نه؟
      مرسی

    3. سلام دوست عزیزم،

      ظاهراً یکی از دوستان خوبم پاسخ شما را داده‌اند، امیدوارم که مشکلتون برطرف شده باشه.
      متأسفانه (یا شاید هم خوشبختانه) هنوز به مبحث شی‌گرایی و Class نرسیده‌ایم. می‌توانید با خیال راحت شروع کنید.

      موفق باشید!

  9. با سلام و کسب اجازه از آقای موسوی
    شما باید ابتدا یک نمونه از فرم دوم در فرم اول ایجاد کنید به این صورت که پس از دوبار کلیک روی buttonدستورات زیر را تایپ کنید
    form2 frm=new form2;
    frm.show();
    نکته1:form2نام فرمی است که میخواهیم با کلیک روی button بالا بیاید شما میتوانید به جای آن نام فرم مورد نظر را قراردهید.
    نکته2:برای اضافه کردن فرم جدید به برنامه در قسمت سمت راست رویwindowes formکلیک راست کرده و از قسمت add کلمهform را انتخاب کنید.
    امیدوارم راهنماییم مفید باشه.

    1. سلام دوست عزیزم،

      چرا دوست عزیز، انشاءالله از فردا مجدداً بخش‌های بعدی را قرار خواهم داد. برای چند هفته مشغول کاری بودم که امکان نوشتن بخش‌های بعدی را نداشته‌ام. با عرض پوزش.
      موفق باشید.

  10. سلام،بابت تمامی این فایل های آموزشی که گذاشته اید.ممنونم.
    من پروژه ای دارم که طبق ان باید برنامه بنویسم که اطلاعات مربوط به کالاهای یک فروشگاه را وارد کند وتمامی اطلاعات مربوط به کالاها را نمایش دهد.ممنون میشم اگر در این مورد توضیحی دهید.

    1. سلام دوست عزیزم،

      اگرچه هدف من از این مقالات آموزشی، جواب دادن به سوالات خارج از موضوع نیست،‌ اما تا جایی که در توانم باشه سعی می‌کنم در هر زمینه‌ای کمک کنم! دقیقاً بفرمایید که مشکلتان در چه بخش(هایی) هست که بتوانم بهتر راهنمایی کنم.
      موفق باشید!

  11. با سلام و تشکر فراوان از زحمت های شما
    من یه سوالی دارم …یعنی یه برنامه ای میخوام بنویسم که خود اون نرم افزار بر روی مکان مشخصی از صفحه نمایش کلیک کند( و هم دابل کلیک)
    و ما تعداد دفعات کلیک و مختصات رو به نرم افزار بدهیم تا نرم افزار بر روی آن کلیک کند
    اگه راهنمایی کنید ممنون میشم
    fox11101@yahoo.oc

  12. با سلام دستون درد نکنه. ممنون.

    اگه امکانش هست اورلود شماره نه این تابع مخصوص قسمت StringComparison رو توضیح بدین

    ممنون

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *