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

نام تاپیک: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

  1. #1
    کاربر دائمی آواتار delphi5
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    پست
    350

    سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    با سلام حضور سروران گرامی
    من مبتدی هستم . دارم رو مفاهیم سی شارپ و به کلی بروی شیء گرایی دارم کار میکنم . یکسری مطالعه و همچنین جستجو داشتم که بجائی ختم نشد . میشه راهنمائی بفرمائید .
    من برای یادگیری بهتر یک پروژه تعریف کردم
    از معماری سه لایه استفاده کردم
    در لایه اول کلاسهایم رو تعریف کردم
    در لایه دوم دیتابیس
    در لایه سوم فرم ها را تعریف کردم
    حالا در لایه کلاس ، کلاسی رو تعریف کردم برای اینکه مقدار ID و نام کاربری ، نام ، نام خانوادگی رو در خود ذخیره کنه
    این کلاس در لایه Classlaye قرار دارد و بصورت زیر تعریف شده است


    public class StoreUserLogonInfo
    {
    private int StoredId;
    public int id
    {
    set{ this.StoredId=value;}
    get { return StoredId;}
    }
    private string StoredUsername=string.Empty;
    public string Username
    {
    set{ this.StoredUsername=value;}
    get { return StoredUsername;}
    }
    private DateTime StoredLogonTime;
    public DateTime LogonTime
    {
    set { this.StoredLogonTime = DateTime.Now; }
    get { return StoredLogonTime;}
    }
    }


    پس از تعریف این کلاس در فرم اول پس از اینکه کلمه عبور و نام کاربری رو چک کردم ، خواستم تا مقادیر بالا را در کلاسم ذخیره کنم تا در فرم های دیگر بتونم ازشون استفاده کنم . بصورت زیر


    if (idd != 0)
    {
    StoreUserLogonInfo LogonInfo = new StoreUserLogonInfo();
    LogonInfo.id = idd;
    LogonInfo.Username = UserText.Text;
    LogonInfo.LogonTime = DateTime.Now;
    if (Datareader != null)
    Datareader.Close();
    this.Hide();
    MainPage mainpage = new MainPage();
    mainpage.Show();
    }
    else
    {
    MessageBox.Show("خطا در ورود نام کاربری با کلمه عبور . لطفا مجددآ سعی نمائید");
    }


    حالا در فرم های بعد مثلا در فرم 2 میخوام که اطلاعات کاربری وارد شده را بروی یک Lable نمایش بدم که موفق نشدم .
    لازم به ذکر است که من کلیه لایه ها را در سایر لایه ها Add refrence کردم
    در تمام فرم ها نام کلاس رو using کردم
    در ضمن میخواستم از توابع سازنده برای چر کردن فیلدها استفاده کنم که نشد .
    حالا اگه ممکنه منو راهنمائی بفرمائید

    با تشکر

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

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    با سلام مجدد
    تعداد بازدید این تاپیک 18 تاست . یکی از مدیران محترم هم بازدید فرمودند و این پست رو مورد لطف قرار دادند ، اما دریغ از یک جواب
    آیا سوال مطرح شده ارزش علمی ندارد ؟
    امیدوار بودم بتونم جواب بگیرم .
    باز هم منتظرم

  3. #3
    کاربر دائمی
    تاریخ عضویت
    دی 1388
    محل زندگی
    رامسر
    پست
    565

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    سلام
    نمی دونم درست متوجه سوالتون شدم یا نه! ولی فک کنم شما می خواید اطلاعات ورود رو در صفحات دیگه هم داشته باشید (با ریختن در یک کلاس)

    اگر سوال این بود، شما شیئ مربوطه (LoginInfo) کلاس مورد نظر رو درون تابع تعریف می کنید، که با تموم شدن تابع، عمر شیئ هم تموم میشه و از بین میره.
    باید طوری تعریف کنید که از همه جا قابل دسترسی باشه. و این به مدل طراحی تون بستگی داره

  4. #4
    کاربر دائمی آواتار delphi5
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    پست
    350

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    دقیقا منظورم همین بود .
    خوب پیشنهاد چیه ؟
    من تا بحال فکر میکردم که زمانی که این کلاس رو ایجاد میکنم و درون اون مقداری رو دخیره میکنم ، اون اطلاعات داخل حافظه باقی میمونه .
    چه کاری باید انجام بدم
    میشه لطفا راهنمائی بفرمائید .

  5. #5
    کاربر دائمی
    تاریخ عضویت
    دی 1388
    محل زندگی
    رامسر
    پست
    565

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    در مورد scope برای متغیر ها/اشیاء بخونید، با این مفاهیم که یک متغیر تا چه زمانی در برنامه هستش و از کجاها قابل دسترسی هست آشنا میشید. حتما این رو بخونید، چون به نوعی بخشی از شیئ گرایی هم به حساب میاد که اساس برنامه نویسی هستش!

    در این مورد هم، همونطور که گفتم، بستگی به نوع طراحی شما داره که این رو کجا به کار ببرید.

    در یک مدل شما کلاس رو به صورت static تعریف می کنید.
    در مدل دیگه، یک شیئ از اون رو در کلاسی تعریف می کنید که از همه جا قابل دسترسی باشه.

    و ...

    موفق باشید

  6. #6

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    نمی دونم که می دونید یا نمی دونید که اگه یک متغیر رو به صورت public و static تعریف کنید، می تونید از اون در جایی خارج از کلاس هم استفاده کنید (همون طور که mehran_sh_t هم اشاره کرد). من اینجا یک int به نام num1 درست کردم که public و static هست. این متغیر داخل یک کلاس فرم به نام Form1 تعریف شده:

    class Form1:Form{
    public static int num1=0;
    }


    حالا هر جای برنامه حتی در کلاسهای دیگه که بخوام به متغیر num1 دسترسی پیدا کنه از عبارت زیر استفاده می کنه:

    Form1.num1


    شما هم می تونی همین کار رو بکنی یعنی محتوای اون TextBox رو در یک string که static و public هست تعریف کنی و در فرم دوم از اون به صورتی که گفتم استفاده کنی.

    موفق باشی

  7. #7
    کاربر دائمی آواتار senaps
    تاریخ عضویت
    آذر 1387
    محل زندگی
    خونمون!
    سن
    31
    پست
    210

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    سلام....
    استاتیک دقیقا کارش چیه؟! منظورم اینه که یه جورایی غیر قابل تغییره؟!! اخه فک کنم یه بار از سر ندونم کاری!! پشت بند یه تابع استاتیک گذاشتم،بیرون از کلاس هیچ جوری نشد ازش استفاده کنم!!(بله مشخصا یادم هست که تابع از نوع عمومی بودش!)....

  8. #8

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    سلام
    استاتیک دقیقا کارش چیه؟!
    اگر در کلاسی که تعریف کردید تابع یا متغیر ی static داشته باشید. می تونید از این عناصر static بدون ایجاد شی از کلاس -و فقط با نام آن کلاس-استفاده کنید به عبارتی شما هر تعداد شی از کلاس تان تعریف کنید این عناصر static برای تمام اشیا تعریف شده یک مکان از حافظه را اشغال می کنند مثلا فرض کنید شما یک کلاس برای کارمندان یک شرکت تعریف کردید به نام Employeeبرای این کارمندان رئیس شرکت یک شخص واحدی است پس متغیری-با نام Manager- که نام رئیس شرکت را برای کارمندان نگه می دارد باید از نوع static باشد تا برای تمام شی های کلاس Employeeفقط یک مکان در حافظه برای متغیر Managerباشد و وقتی رئیس کارمندان عوض شد کافیست فقط این متغییر را تغییر داد تا برای تمام اشیا کارمندان در حافظه نام رئیس شان عوض شود و برای استفاده از این متغیر باید آن را همراه با نام کلاس آورد :
    Employee.Manager = "name";

  9. #9

    نقل قول: سوالاتی در مورد Field , Property, توابع سازنده ، Public ، Private

    دقیقا درست گفت. به عنوان مثال تابع math.sin که برای محاسبه سینوس به کار میره یک تابع static هست. چون شما برای استفاده از آن لازم نیست یک نمونه از math رو ایجاد کنید.

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

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