PDA

View Full Version : استفاده از متغیر



رهنورد2
شنبه 13 آبان 1385, 18:27 عصر
برای تعریف متغیری که در کل پروژه استفاده میشه ونحوه دسترسی به ان وبرای تعریف متغیری
که در کل یک فرم قابل دسترسی ونحوه دسترسی به ان چه باید کرد.؟

احمد سامعی
شنبه 13 آبان 1385, 19:51 عصر
برای تعریف متغیری که در کل پروژه استفاده میشه ونحوه دسترسی به ان وبرای تعریف متغیری
که در کل یک فرم قابل دسترسی ونحوه دسترسی به ان چه باید کرد.؟

#C کلاس بندی هست و شما وقتی در کلاس و خارج از محدوده یک متد متغییری تعریف می کنی در تمام اون کلاس ( که می تونه شامل فرم هم بشه ) به اون می تونی دسترسی داشته باشی به این صورت


private string name;

بعد در هر جا تو کلاس می تونی بهش مقدار بدی


name = "ahmad";

برای اینکه متغیر سراسری باشه باید از حالت زیر استفاده کنی تا در تمام کلاس ها قابل دسترس باشه


public string name;
حالا که به صورت سراسری تعریف کردی اگر خارج از کلاس ، و در کلاس دیگه ای باشه و بخوای از اون استفاده کنی باید از کد زیر استفاده کنی وگر در داخل کلاس هست که فرقی نمی کنه مثل حالت اول


using (Class1 obclass = new Class1())
{
obclass.name = "ahmad";
}

(استفاده از بلاک using باعث می شه فضای اشغال شده بعد از پایان بلاک آزاد بشه)

برای متد( توابع) و کنترل ها هم همینطور است

البته اگر فایل های برنامه رو بگردی می فهمی کجا در باید تعریف کنی ( 2003 با 2005 فرق می کنه)

محمد میرمصطفی
سه شنبه 16 آبان 1385, 15:28 عصر
من متغییرهای مهمم رو در کلاس Program تعریف می کنم.
Program.Settings.MainForm.Height ، ...

اَرژنگ
سه شنبه 16 آبان 1385, 15:53 عصر
استفاده از متغیرهایه سراری بر خلافه تمامه اصوله برنامه نویسیه.
اگر یک ستینگه بخوصیصی برایه برنامه لازمه از
ApplicationConfiguration Class استفاده میشه
وگرنه روشه برانمه نویسیه که استفاده میشه اشتباهه.

احمد سامعی
سه شنبه 16 آبان 1385, 23:39 عصر
من متغییرهای مهمم رو در کلاس Program تعریف می کنم.
Program.Settings.MainForm.Height ، ...

من بیسواد
آقا شما ببخشید
اما این چیزی که شما نوشتید من هم سر در نمی یارم چند بار هم برای دوستان پست گذاشتم اما کسی جواب نداد که چه طوری تو ستینگ چیزی بنوسیم و بخونیم( دینامیک نه قبل از کمپایل) چی برسه به بنده خدا که تازه کار تو #C

احمد سامعی
سه شنبه 16 آبان 1385, 23:44 عصر
استفاده از متغیرهایه سراری بر خلافه تمامه اصوله برنامه نویسیه.
اگر یک ستینگه بخوصیصی برایه برنامه لازمه از
ApplicationConfiguration Class استفاده میشه
وگرنه روشه برانمه نویسیه که استفاده میشه اشتباهه.

آقا ما خینگ
اما جواب سوال ایشون این بود !؟؟:متفکر: :متفکر: :متفکر:

اَرژنگ
چهارشنبه 17 آبان 1385, 02:25 صبح
ایشان گفتند "متغیرهایه مهم" و روششان هم کاملاً درسته، من در مورد عنوان توپیک نوشتم، همین چند روز پیش یکی در مورده متغیرهایه سراسی میپرسید.
در ضمن اگر میگیم چیزی بده برایه این نیست که به شما و یا هر کسی در هیچ موردی اهانت کنیم.
وقتی که من شروع کردم از اینکه بقیه بگن که چه کاری اشتباه است و راهه بهتر چیه ازشان متشکر بدوم.
لازم هم نیست که همین الان دنباله روشه دیگر بگردید، این یکی از اصوله برنامه نویسیه که همه در یک زمانی باهاش آشنا میشند.
بقیه از من بهتر میتونند اشکال متغییرهایه سراسری را توضیح بدند.من فقط اشاره کردم که اگر در آینده زمان پیدا کردید دنباله روشهایه دیگر بردی و گرنه اگر یک متغییر سراسری کارت را راه میندازه ازش استفاده کن تا بعداً سره وقت روشهایه دیگر را استفاده کنید.
در ضمن نه شما و نه کسی دیگر خنگ و یا بیسواده، اگر ما از تجربه چیزی میدونیم و بهش اشاره نکنیم فایده ما چیه؟

اَرژنگ
چهارشنبه 17 آبان 1385, 02:31 صبح
من بیسواد
آقا شما ببخشید
اما این چیزی که شما نوشتید من هم سر در نمی یارم چند بار هم برای دوستان پست گذاشتم اما کسی جواب نداد که چه طوری تو ستینگ چیزی بنوسیم و بخونیم( دینامیک نه قبل از کمپایل) چی برسه به بنده خدا که تازه کار تو #C
در
net 2.0
و یا .net 1.0?

احمد سامعی
چهارشنبه 17 آبان 1385, 08:50 صبح
در
net 2.0
و یا .net 1.0?

net 2.0 ( 2005

احمد سامعی
چهارشنبه 17 آبان 1385, 09:01 صبح
.
وقتی که من شروع کردم از اینکه بقیه بگن که چه کاری اشتباه است و راهه بهتر چیه ازشان متشکر بدوم.

در ضمن نه شما و نه کسی دیگر خنگ و یا بیسواده، اگر ما از تجربه چیزی میدونیم و بهش اشاره نکنیم فایده ما چیه؟

درود و صد بدرود بر مردمان ایران زمین

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

پایدار باشید

محمد میرمصطفی
پنج شنبه 18 آبان 1385, 00:06 صبح
البته این تکه سورسی که من نوشتم با Setiingsی که تو VS 2005 هست کمی فرق داره. مال کلاس خودمه. ولی:

رو پروژت راست کلیک کن و Properties بگیر.
برو به قسمت Settings.
اگه قبلا Settings رو ایجاد کردی که هیچ اگه نه، رو لینکه وسط فرم کلیک کن.
یک Settings بسته به DataType مورد علاقت ایجاد کن.
ذخیره کن.
برگرد رو کدت:
مثال:

Properties.Settings settings = Properties.Settings.Default;
Console.WriteLine(settings.Sample);

اَرژنگ
پنج شنبه 18 آبان 1385, 18:20 عصر
من هم اکثرا تو پست هایی که می زارم تهش می نویسم اشکالش رو دوستان بگن
اما بهتر نبود اول می گفتید جوابی (روشی) که من در مورد سوال ایشون گفتم درست یا غلط
استاد، با عرضه پوزش، من انتظار دارم که بعد از هر پستم اشکالتم را بگن، در حقیقت منتظر پستهایی هستم که اشکالته پستم را بگند. اگر فکر نمیکردم که چیزی نمونده که من یاد بگیرم پست نمیفرستادم. من خودم را بنده خدا میدونم، اینکه فکر کنم من اشکالی ندارم از من گذشته، جوان که بودیم این فکر و خیالات زیاد داشتیم، ولی الان میدونم که هیچ چی نمیدونم.

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



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

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

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

مخلسیم
با عرضه احترام

احمد سامعی
جمعه 19 آبان 1385, 13:35 عصر
البته این تکه سورسی که من نوشتم با Setiingsی که تو VS 2005 هست کمی فرق داره. مال کلاس خودمه. ولی:

رو پروژت راست کلیک کن و Properties بگیر.
برو به قسمت Settings.
اگه قبلا Settings رو ایجاد کردی که هیچ اگه نه، رو لینکه وسط فرم کلیک کن.
یک Settings بسته به DataType مورد علاقت ایجاد کن.
ذخیره کن.
برگرد رو کدت:
مثال:

Properties.Settings settings = Properties.Settings.Default;
Console.WriteLine(settings.Sample);


ببخشید استاد من 2005 VC استفاده می کنم و
اما من تمام MSDN رو زیر رو کردم چیزی سر در نیاوردم که چطور باید از Setting استفاده کرد
( یک سوال من وقتی می خوام بین دو فرم (کلاس) اطلاعاتی رد و بدل کنم بهتر اینکه از Setting استفاده کنم ؟ درسته ؟
یعنی باید تو یکی مقدار بدم تو دومی مقدار رو بگیرم ؟)

احمد سامعی
یک شنبه 28 آبان 1385, 17:43 عصر
البته این تکه سورسی که من نوشتم با Setiingsی که تو VS 2005 هست کمی فرق داره. مال کلاس خودمه. ولی:

رو پروژت راست کلیک کن و Properties بگیر.
برو به قسمت Settings.
اگه قبلا Settings رو ایجاد کردی که هیچ اگه نه، رو لینکه وسط فرم کلیک کن.
یک Settings بسته به DataType مورد علاقت ایجاد کن.
ذخیره کن.
برگرد رو کدت:
مثال:

Properties.Settings settings = Properties.Settings.Default;
Console.WriteLine(settings.Sample);



ببخشید استاد من هر کار کردم نفهمیدم چطور از داخل برنامه به صورت دینامیک setting رو تغییر بدم ( ی تونم بخونم اما نمی تونم بنویسم)
برای ذخیره و انتقال اطلاعات بین دو کلاس و یا زمانهای استفاده متفاوت از برنامه

محمد میرمصطفی
چهارشنبه 01 آذر 1385, 17:54 عصر
من وقتی می خوام بین دو فرم (کلاس) اطلاعاتی رد و بدل کنم بهتر اینکه از Setting استفاده کنم ؟ درسته ؟
یعنی باید تو یکی مقدار بدم تو دومی مقدار رو بگیرم ؟
خیر. بسته به متغییر جاهای مختلف. اگه فقط بین همین دوتا فرمه، توی یکی به صورت public تعریف کن (ترجیحا property) تو هرجا می خوای set و get کن.

محمد میرمصطفی
چهارشنبه 01 آذر 1385, 18:09 عصر
اینم یه sample