تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: عدم گرفتن خطا

  1. #1
    آخر فروم باز
    تاريخ عضويت
    Nov 2009
    پست ها
    1,257

    پيش فرض عدم گرفتن خطا

    درود و سلام

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

  2. این کاربر از iranch بخاطر این مطلب مفید تشکر کرده است


  3. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    خیر. از دید شما، در بهترین حالت می توانست یک warning بدهد.
    دقت کنید آنالیز کد به صورت flow توسط کامپایلر صورت بدین معنا نیست بیاید ببیند آیا شما متغیری را null کرده اید که بعد بخواهید بدان دسترسی داشته باشید یا خیر. کامپایلر null شدن متغیر را درک می کند و فرض بر آن است که این null کردن عمدی بوده و در جایی دیگر از برنامه این null بودن قابل استفاده است و یا قصد خام سازی متغیر خود را داشته ایم.
    هر کامپایلر یک optimization level دارد که نسبت به آن این حرکت Flow تغییر می کند. یعنی برنامه ی شما با یک سطح optimization بالا، خط های :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    را نخواهد داشت گویی که نوشته نشده است. اما باز این بهینه سازی کاری به null شدن و استفاده از null ندارد. در اینگونه موارد که خود برنامه نویس نیز نمی داند عنصرش null هست یا نه از بررسی null متغیر های ? و یا try catch استفاده می کند.
    اضافه: optimization در زمان های native تر پر رنگ تر است.
    مطالب بیشتر optimization:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    موفق باشید.

  4. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  5. #3
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    بادیدن تاپیک تان یک مطلب را یادم آمد، گفتم جهت اطلاع عمومی بیان کنم، اعتراف میکنم فقط کمی به موضوع بحث مرتبط است... ولی هیجان انگیز است ...!
    در نسخه آتی VS2015 که احتمالا در همین هفته های آتی و کمی قبل از Win10 عرضه خواهد شد، اپراتور جدید "?." اضافه شده که از بروز خطاهای nullrefernce جلوگیری خواهد کرد.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    استفاده مکرر و سلسه مراتبی این اپراتور هم کدنویسی و هم فهم کد را راحت میکند و نیاز به استفاده مکرر از if برای بررسی null را تا حد زیادی کاهش میدهد...
    a.?[5].?c.?d(123).?e
    Last edited by _H2_; 05-07-2015 at 01:05.

  6. 3 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •