PDA

View Full Version : سوال: مشکل در تعریف متغیر



YasserDivaR
یک شنبه 17 مرداد 1395, 19:50 عصر
سلام من یه برنامه دارم که به قسمتیش مربوطه به بروز رسانی دیتا بیس
یه فیلد دارم که نسخه دیتابیس رو داخلش ذخیره کردم
بعد توی کد اپدیت که به این صورت هست

public partial class Form1 : Form
{

string CurrentVersionDB = label2.Text, NewVersionDB;
string dateUp = "http://localhost/date.txt";
string addrssdate = Application.StartupPath + @"\date.txt";


خط اول خطا میده اینو چجوری باید بنویسم که مشکلی پیش نیاد!

حسین.کاظمی
یک شنبه 17 مرداد 1395, 19:52 عصر
سلام
دوست عزیزم تو که زحمت کشیدی تاپیک گذاشتی حد اقل متن خطا یا یه عکس از خطا را هم میزاشتی :لبخند:
ما از کجا بدونیم چ خطایی میده؟؟؟؟؟:چشمک::لبخند:

c0mmander
یک شنبه 17 مرداد 1395, 20:00 عصر
سلام من یه برنامه دارم که به قسمتیش مربوطه به بروز رسانی دیتا بیس
یه فیلد دارم که نسخه دیتابیس رو داخلش ذخیره کردم
بعد توی کد اپدیت که به این صورت هست

public partial class Form1 : Form
{

string CurrentVersionDB = label2.Text, NewVersionDB;
string dateUp = "http://localhost/date.txt";
string addrssdate = Application.StartupPath + @"\date.txt";


خط اول خطا میده اینو چجوری باید بنویسم که مشکلی پیش نیاد!
سوالاتون رو درست متوجه نشدم اما
داخل سی شارپ عملگری , تعریف نشده. شما چه انتظاری از این خط دارید اگر میخواهید رشته NewVersionDB به label2.Text اضافه بشه باید از عملگر + استفاده کنید. اگر میخواهید NewVersionDB به عنوان یک رشته جدید باشه اول باید متغییر ها تعرف بشوند و بعد مقدار دهی:

string CurrentVersionDB , NewVersionDB;
CurrentVersionDB = label2.Text;
NewVersionDB= string.Empty;

یا

string CurrentVersionDB = label2.Text, NewVersionDB="";

YasserDivaR
یک شنبه 17 مرداد 1395, 20:21 عصر
سلام
دوست عزیزم تو که زحمت کشیدی تاپیک گذاشتی حد اقل متن خطا یا یه عکس از خطا را هم میزاشتی :لبخند:
ما از کجا بدونیم چ خطایی میده؟؟؟؟؟:چشمک::لبخند:

ممنون که جواب دادین
A field initializer cannot reference the non-static field, method, or property 'LinkNiko.Form1.label2

مشکل من اینه که لیبل دو رو نمیشناسه
یه متغیر سراسری هست که تو کل فرم باید استفاده بشه و چون توی قسمت بالا هست خطا میده

YasserDivaR
یک شنبه 17 مرداد 1395, 20:23 عصر
سوالاتون رو درست متوجه نشدم اما
داخل سی شارپ عملگری , تعریف نشده. شما چه انتظاری از این خط دارید اگر میخواهید رشته NewVersionDB به label2.Text اضافه بشه باید از عملگر + استفاده کنید. اگر میخواهید NewVersionDB به عنوان یک رشته جدید باشه اول باید متغییر ها تعرف بشوند و بعد مقدار دهی:

string CurrentVersionDB , NewVersionDB;
CurrentVersionDB = label2.Text;
NewVersionDB= string.Empty;

یا

string CurrentVersionDB = label2.Text, NewVersionDB="";


توی قسمت بالا هم عرض کردم متغیر سراسری که باید از لیبل 2 مقدار بگیره
و چون توی کلاس فرم نوشتم متوجه نمیشه اگه بعد کلاس بنویسم اون وقت دیگه سراسری نمیشه

c0mmander
یک شنبه 17 مرداد 1395, 20:41 عصر
دلیلش مشخصه چون label2 هنوز در حافظه ساخته نشده و در context شما مقدار دهی انجام نگرفته. به این صورت عمل کنید:

public partial class Form1 : Form
{

string CurrentVersionDB , NewVersionDB ;

public Form1()
{
InitializeComponent();
CurrentVersionDB = label2.Text;
}