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

نام تاپیک: static در زبان C

  1. #1

    Red face static در زبان C

    برنامه نویسان که پیر دیر هستند کسی هست که بدونه قضیه static در زبان C چی بوده
    سوال من اینه که چه طوری میشه متغییری که استاتیک تعریف میشود در C را در زبان #C پیاده سازی کرد

  2. #2
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    https://barnamenevis.org/showpo...53&postcount=3
     

    private static Form1 _coreForm;

  3. #3
    من هنوز جواب نگرفتم
    لطفا زیر دیپلم صحبت کنید

  4. #4
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    من هنوز جواب نگرفتم
    لطفا زیر دیپلم صحبت کنید
    برنامه‌نویسی بالا و پائین دیپلم نداره، مگر طرز تعریف یک متغییر استاتیک را در سی‌شارپ نخواستید؟ اصلا با کد کار کردید؟ برایه نیم خط کد که نمیشه ساده تر نوشت؟ بیزحمت وقتی که میگید جواب نگرفتید یک و یا دوخط ("دوخت" بود تصحیح شد ، با تشکر از night_fall2) هم مرحمت کنید که از چه لحاظ مشکل دارید.
    هر چی سوال را دقیقتر توظیح بدید بقیه هم میتوانند جواب دقیقتر بدهند.

  5. #5
    من منظورم از متغییر استاتیک این بود که وقتی یک کلاس استاتیک دارم و در داخل اون کلاس استاتیک متدی استاتیک تعریف میکنم و در داخل اون متد متغییری رو تعریف میکنم
    int i = 10;

    و بعد توی اون متد مقدار متغییر i رو دو واحد افضایش میدم .
    در مرحله بعدی که متد استاتیک تعریف شده از کلاس استاتیک رو صدا میزنم مجدد مقدار متغییر i مساوی 10 نشود و این بار از همان اول مقدار متغییر i مساوی 12 باشد و بعد اضافه شدن اون دو واحد مقدار i مساوی 14 بشه

    اگه کسی با زبان C آشنا باشه منظور منو خوب میفهمه

  6. #6
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    خوب چرا این متغییر را خارج متد تعریف نمیکنید؟
    در ضمن سعی نکنید همه چی را همان طور که در سی باهاش کار میکردید کار کنید. مفاهیم سی شارپ را یاد بگیرید و مستقیما با روشهایه سی شارپ کار کنید زندگی آسان تر میشه.

  7. #7
    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    یک و یا دوخت
    یک و یا دوخت === یک یا دو خط !!!

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  8. #8
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    نقل قول نوشته شده توسط alireza_tavakol
    من منظورم از متغییر استاتیک این بود که وقتی یک کلاس استاتیک دارم و در داخل اون کلاس استاتیک متدی استاتیک تعریف میکنم و در داخل اون متد متغییری رو تعریف میکنم
    دوست عزیز چنین چیزی در سی شارپ امکان پذیر نیست... ولی در VB.NET امکان پذیره.

  9. #9
    متاسفانه من باور نمی کنم که زبان #C از انجام این کار عاجز باشد در صورتی که جد بزرگوارش توان انجام این کار را داشته باشد
    در ثانی اگر امکان انجام این کار مهال است علت چیست آیا دلیل منطقی خاصی وجود دارد؟
    ثالثا چرا VB.NET می تواند انجام دهد وای #C نمی تواند این دو زبان که توسط یک شرکت و توسط یک IDE و با هسته ای یکسان هستند

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

  10. #10
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    متاسفانه من باور نمی کنم که زبان #C از انجام این کار عاجز باشد در صورتی که جد بزرگوارش توان انجام این کار را داشته باشد

    ۱) سی یک زبان غیره قشیگراست، سی شارپ زبان شئی گراست، همانطوری که در https://barnamenevis.org/showthread.php?t=81358 گفتم طراحان سی شارپ صلاح ندیدند تمام خصوصیات سی را در سی شارپ داشته باشند. در ثانی در سی شارپ باید با مفاهیم شئی گرائیی کار کنید. تبدیل کد از سی کمله به کمله به سی شارپ کاره درستی نیست و بعضی مفاهیم از یک زبان به یک زبان دیگر قابل ترجمه نیستند (همانطوری که در زبان آدمیزاد هم نمیشه از یک زبان به یک زبان دیگر کلمه به کلمه ترجمه کرد )

    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    در ثانی اگر امکان انجام این کار مهال است علت چیست آیا دلیل منطقی خاصی وجود دارد؟
    ثالثا چرا VB.NET می تواند انجام دهد وای #C نمی تواند این دو زبان که توسط یک شرکت و توسط یک IDE و با هسته ای یکسان هستند
    همانطوری که در https://barnamenevis.org/showthread.php?t=81358 گفتم طراحان هر زبان هر چی را که صلاح نبینند ور میدارند.
    امکان چه کاری مهال است؟ نوشتن برنامه نویسی غیره شئیگرا در یک زبان شئیگرا مفهوم و معنی ندارد. اگر به روش شئیگرا فکر کنید به راحتی میشه همان کار را انجام داد.

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

    در ضمن سوالهایتان بجاست، ولی باید قبول کنید که در دنیا هیچ چی کامل نیست، همه چی منطق ۱۰۰% درست ندارد. اینکه وی‌بی دات نت قابلیت چیزی را دارد و سی شارپ ندارد از حقیقت واقعیت چیزه بیشتری لازم نمیشه باشد. اگرچه منطقتان را درک میکنم ولی حقیقت چیزه دیگریست. میتوانید منطقا یک چیزی را قبول نداشته باشید ولی حقیقتا باید باهاش کنار بیاید.
    اگر این کد مورد نظرتان را بفرستید به جایه خواندن فلسفه من یک جواب دقیقتر میگرید.
    اگر ممکن است تا جایی که میوانید کدتان را در سی شارپ بنویسید و اینکه انتظار دارید در چه خطی چه اتفاق بیافتد را هم بفرستید.
    من نمیخوام نصیحت کنم، ترجیح میدم مشکلتان رابا ۳ خط ‌کد حل کنم تا اینکه ۲۰ خط انشا بنویسم :)

  11. #11
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    در ثانی اگر امکان انجام این کار مهال است علت چیست آیا دلیل منطقی خاصی وجود دارد؟
    فرض کنیم که اگر چنین قابلیتی در سی# وجود داشت:

    class Simple
    {
    static int c00 = 0;

    public void Goal()
    {
    static int c99 = 0;
    c99++;
    }
    }

    قبول دارید که زمان نابودی متغیر c99 برابر زمان نابودی متغیر c00 است؟

    وجود متغیر c99 روی کلاس Simple تاثیر گذار است... در حالیکه کلاس Simple از وجود متغیر c99 بی اطلاع است! و این از نظر سی# بی معنا خواهد بود. برخلاف VB.NET و سی++، در سی# فقط میتوان بصورت شیئ گرا نوشت و غیر از آن امکان پذیر نیست (هر زبان برنامه نویسی یک هدف خاص رو دنبال میکنه).
    متغیر c99 رفتاری شبیه به اشیاء نداره، چون مثلا وقتی شیئ x در محدوده A ایجاد میشود، به این معنی است که شیئ x در محدوده A زندگی میکند و محدوده A باید از وجود شیئ x مطلع باشه در غیر اینصورت چیزی فراتر از ماورای طبیعی اشیاء خواهد بود! (یعنی غیر قابل قبول!). در حال حاضر، شیئ c99 در محدوده کلاس Simple زندگی میکند ولی کلاس Simple از وجود آن اطلاعی نداره، پس از دیدگاه اشیاء، غیر قابل توجیه خواهد بود.
    مثلا در نظر بگیرید که نمیدونید شما چهار تا دست دارید! (شما = کلاس Simple) (دو دست اضافی = شیئ c99)

  12. #12
    به خدا حقت که بهت بگم خدای برنامه نویسی
    این قدر کلمات و جملات منطقی و واضح است که زبان من قاصر از هر گونه تعریف می باشد
    من قانع شودم و جواب خودم رو گرفتم
    اما یه سوال جزیی این طوری که من از جواب و مثال شما برداشت کردم
    ++C و VB.NET دارن یه جورایی غیر منطقی عمل میکنند آیا شما هم صریحا به این نکته اعتقاد دارین

  13. #13
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    از اظهار لطفتون ممنونم :-)
    چون سی++ و VB.NET اجازه نوشتن بصورت غیر شیئ گرا را میدهند، نمیتونیم بگیم که این زبانها غیر منطقی رفتار میکنند، چون نوشتن کد بصورت غیر شیئ گرا، جزئی از خصوصیات این زبانهاست. از این نظر درست میگید که اینکار غیر منطقی است اما از دیدگاه سی# غیر منطقی است ولی از دیدگاه سی و سی++، کاملا منطقی خواهد بود.
    با توجه به اینکه، زبان سی اصولا شی گرا نیست پس استفاده از روشهای شیئ گرا نامفهوم خواهد بود و همچنین، این جزئی از خصوصیات سی++ است که بتوان برنامه نویسی غیر شی گرا را در کنار برنامه نویسی شی گرا انجام داد.
    VB.NET هم از جدش الهام میگیرد که جدش Visual Basic است، که Visual Basic هم شیئ گرا نبوده است.
    و چون سی# تازه متولد است، پس از همان اول فقط بر پایه اصول شی گرایی طراحی شده است. فکر کنم جاوا هم شیئ گرای خالص باشد مثل سی#... البته من با زبان جاوا آشنایی ندارم و از این گفته ام مطمئن نیستم و فقط آنرا شنیده ام :-)

  14. #14
    با تشکر از کلیه دوستانی که در بحث مذکور شرکت کرده اند بخصوص PC2st.ir عزیز که جواب نهایی را داد
    من موضوع را کامل درک کردم و به عمق فاجعه پی بردم و هیچ گونه پرسش در این زمینه ندارم
    البته همان طور که جناب آقای ارژنگ خان فرمودند این موضوع از نظر کاربردی ارزشی نداشت ولی برای من از نظر مفهومی جالب بود
    فکر کنم جاوا هم شیئ گرای خالص باشد
    من یه کم جاوا بلدم و این کفته شما رو تایید میکنم ( البته من کیم که جمله شما رو تایید یا رد کنم )

تاپیک های مشابه

  1. مقاله: Static در C#‎
    نوشته شده توسط Keramatifar در بخش C#‎‎
    پاسخ: 16
    آخرین پست: پنج شنبه 14 شهریور 1392, 11:35 صبح
  2. static دردلفی
    نوشته شده توسط masood2004 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 30 شهریور 1385, 18:11 عصر
  3. Static
    نوشته شده توسط benyamin_pc در بخش C#‎‎
    پاسخ: 10
    آخرین پست: سه شنبه 17 مرداد 1385, 19:14 عصر
  4. دسترسی به متغیرهای static عضو یک کلاس از داخل DLL
    نوشته شده توسط sh_roohani در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: سه شنبه 04 مرداد 1384, 09:37 صبح
  5. بدست آوردن اطلاعات دقیق درباره یک static ip
    نوشته شده توسط RezaJP در بخش امنیت در شبکه
    پاسخ: 6
    آخرین پست: جمعه 26 فروردین 1384, 01:56 صبح

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

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