ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 6 از 6
  1. #1
    تاریخ عضویت
    2020/02/10
    نوشته ها
    4
    0
    Junior Member

    تغییر مقدار متغیر سراسری

    سلام. در ابتدا عرض کنم مبتدی هستم .
    یک public static class تعریف کردم که داخلش یک متغیر به نام f از نو باز هم public decimal تعریف شده. تابع دوم به صورت public decimal هم نوشتم تابع سوم از نوع public void دارم که باید از تابع اول و کلاس بالایی استفاده کنه . حالا مشکلم اینه که با هر بار فراخوانی تابع سوم مقدار متغیری که داخل کلاس هست صفر میشه. متغیر f۱....... یعنی مقدار پیش فرض اولیش در صورتی که من نمیخوام هر بار مقدار پیش فرضش درش قرار بگیره.
    ممنون میشم راهنماییم کنید. اگر لازمه تا کد رو قرار بدم.
    کد:
      	public partial class Form۱ : Form
    	{
    	public static class FinalPrice
    	{
    	public static decimal f۱=۰,f۲=۰,f۳=۰,f۴=۰,f۵=۰;
    	public static string stime۱,stime۲,stime۳,stime۴,stime۵;
    	public static Boolean a۱=true, a۲;
    	}
    	public decimal concate(string a , string b) {
    	string x,y;
    	decimal z;
    	decimal result;
    	x = a.Substring(۰, ۲);
    	y = a.Substring(۳, ۲);
    	z =Convert.ToDecimal( a.Substring(۶, ۲));
    	result =((( (Convert.ToInt۳۲(x) * ۶۰) + Convert.ToInt۳۲(y)+((z)/۶۰))* Convert.ToInt۳۲(b))/۶۰) ;
    	
    	return Math.Ceiling(result);
    	
    	}
    	
    	public void Next(string a, Timer tt, System.Diagnostics.Stopwatch ss,decimal f,string c,Boolean aa,ListBox l,string b,string d,string st)
    	{
    	if (a.Length > ۰)
    	if (MessageBox.Show("آیا از ثبت زمان فعلی و شروع زمان جدید اطمینان دارید ؟ ", " هشدار ", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button۲) == DialogResult.Yes)
    	{
    	tt.Stop();
    	f = Convert.ToDecimal(c);
    	ss.Reset();
    	switch(aa)
    	{
    	case true:
    	{
    	l.Items.Add("Start: " + a + " ==> End: " + DateTime.Now.ToString("HH:mm&quot + " ==? Cost: " + Convert.ToString(concate(b, d)));
    	aa = false;
    	st = DateTime.Now.ToString("HH:mm"
    	break;
    	}
    	case false :
    	l.Items.Add("Start: " + st + " ==> End: " + DateTime.Now.ToString("HH:mm&quot + " ==> Cost: " + Convert.ToString(concate(b, d)));
    	st = DateTime.Now.ToString("HH:mm"
    	break;
    	}
    	c = "";
    	b = "";
    	
    	tt.Start();
    	ss.Start();
    	
    	}
  2. #2
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    سلام...لطفا کدتونو تو یه فایل txt بفرستین...اینطوری نمیشه چیزی ازش فهمید.
  3. #3
    تاریخ عضویت
    2020/02/10
    نوشته ها
    4
    0
    Junior Member
    چشم الان فرستادم. ضمیمه شده. ممنون میشم راهنماییم کنید.
    فایل های پیوست شده فایل های پیوست شده
  4. #4
    تاریخ عضویت
    2017/11/22
    نوشته ها
    364
    240
    Administrator
    شما هنگام فراخوانی تابع Next در داخل رویداد کلیک دکمه 3...متغیر FinalPrice.f1 رو به صورت عادی به تابع ارسال میکنید....و از اونجایی که نوع های اعشاری (یعنی float، double و decimal) به صورت Value-Type هستن...فقط یه کپی از FinalPrice.f1 به تابع ارسال میشه و وقتی داخل تابع مقدارش تغییر کنه....تاثیری روی مقدار اصلی نمیذاره....برای رفع مشکلتون...باید از کلمه کلیدی ref استفاده کنید.
    llt8 capture - تغییر مقدار متغیر سراسری
  5. #5
    تاریخ عضویت
    2020/02/10
    نوشته ها
    4
    0
    Junior Member
    یه دنیا ممنون. واقعا نشستی این کدهای درهم بی معنی رو خوندی؟ دمت گرم
    ویرایش توسط سعید سیفی زاده : 2020/02/16 در ساعت 23:58
  6. #6
    تاریخ عضویت
    2020/02/10
    نوشته ها
    4
    0
    Junior Member
    ممنون از راهنماییتون. برنامه رو بازم جلو بردم. الان یه مشکل دیگه دارم. چرا توی تابع Next که نوشتم هیچوقت وارد قسمت دوم دستور switch یعنی false بودن مقدار متغیر نمیشه و همش حالت اول در نظر گرفته میشه؟؟ برنامه پایین تر ضمیمه شده. ممنون
    فایل های پیوست شده فایل های پیوست شده
نمایش نتایج: از 1 به 6 از 6

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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