نمایش نتایج 1 تا 8 از 8

نام تاپیک: متد در متد

  1. #1

    متد در متد

    سلام من میخوام یک کلاس بنویسم که در یکی از متد هاش متد داشته باشه


    بزارید بهتر توضیح بدم


    ما میدونیم کلاس اینجوری فراخوانی میشه


    Classname Object = new Classname();


    و میدونیم اینجوری میشه به متد هاش دسترسی داشت


    Object.metod


    حالا یک چیزی دقت کردین بعضی از متد های دوباره داخل هم میشن
    مثلا

    Object.metod.metode2

    من یک کلاس به نام alfabet دارم
    میخوام بک متد به نام language داشته باشم
    که داخلش دومتد زبان داشته باشم

    مثلا

    ()Alfabet Alfabet = new Alfabet

    Alfabet.Language.Persian

    یا

    Alfabet.Language.English


    باید چجوری بنویسم؟؟؟؟

  2. #2
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    30
    پست
    571

    نقل قول: متد در متد

    با سلام

     class Person
    {
    private String name;
    private int age;

    public Person setName(String name)
    {
    this.name = name;
    return this;
    }

    public Person setAge(int age)
    {
    this.age = age;
    return this;
    }

    public void introduce()
    {
    MessageBox.Show(" نام: " + name + " :سن " + age + " ");
    }
    }



    و فراخوانی متدها :



    private void Form1_Load(object sender, EventArgs e)
    {

    Person person = new Person();

    person.setName("علی").setAge(24).introduce();
    }


    در مورد مشکل شما از enum هم میتونید استفاده کنید.
    آخرین ویرایش به وسیله دلتنگ اسمان : شنبه 25 خرداد 1398 در 23:18 عصر

  3. #3

    نقل قول: متد در متد

    ببخشید شما متوجه نشدید


    بلافرض
    من یک کلاس به نام Alfabet دارم که یک تابع به نام Language دارد
    حالا میخوام این تابع دو تابع دیگه به نام English و Persian داخلش داشته باشه مثل

    (12)Alfabet.Language.English


    اینجوری

  4. #4

    نقل قول: متد در متد

    نقل قول نوشته شده توسط User Soual مشاهده تاپیک
    ببخشید شما متوجه نشدید


    بلافرض
    من یک کلاس به نام Alfabet دارم که یک تابع به نام Language دارد
    حالا میخوام این تابع دو تابع دیگه به نام English و Persian داخلش داشته باشه مثل

    (12)Alfabet.Language.English


    اینجوری
    شما همچین سینتکسی کجا دیدی؟ توی سی شارپ ما همچین چیزی نداریم، و اینی که شما هم کد نمونه ش رو نوشتی اصلا متد نیست، این کد توی سی شارپ اینجوری میشه: کلمه language توی کلاس alphabet معرف یک پراپرتی از جنس یک کلاس دیگه هست که اون کلاس یک متد با نام English و یک متد با نام Persian داره

  5. #5
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,425

    نقل قول: متد در متد

    سلام
    Language یک متد نیست بلکه یک member از نوع field یا property است property set ندارد ولی property get دارد که خروجی آن میتواند یک کلاس باشد که متدهای مورد نظر شما در آن کلاس پیاده سازی شده است و شی کلاس اصلی از طریق سازنده به درون آن کلاس دوم ارسال شده است به نظر من با ایندکسر میتونید حرفه ای تر کلاس را بسازید چون آن عدد 12 بعنوان ورودی میتونه ورودی ایندکسر باشه

  6. #6

    نقل قول: متد در متد

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    شما همچین سینتکسی کجا دیدی؟ توی سی شارپ ما همچین چیزی نداریم، و اینی که شما هم کد نمونه ش رو نوشتی اصلا متد نیست، این کد توی سی شارپ اینجوری میشه: کلمه language توی کلاس alphabet معرف یک پراپرتی از جنس یک کلاس دیگه هست که اون کلاس یک متد با نام English و یک متد با نام Persian داره
    میشه با کد بنویسید
    لطفاااا

  7. #7

    نقل قول: متد در متد

    واسه حالتی که شما میخوای، به نظرم بهتره از enum استفاده کنی، اول یه enum type جدید به این شکل تعریف میکنی:
    public enum Languages : byte
    {
    English = 0,
    Persian = 1,
    Germany = 2,
    Turkish = 3
    }

    بعد داخل کلاس alphabet یه پراپرتی از جنس این Languages تعریف میکنی:

    public class Alphabet
    {
    public Languages Language { get; set; }
    }
    مقدارهی این پراپرتی هم به اینشکل انجام میشه:
    var alphabet = new Alphabet();
    alphabet.Language = Languages.Persian;


  8. #8
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    677

    نقل قول: متد در متد

    یه جستجو در خصوص NameSpace بکنید حتما جوابتون رو میگیرید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •