برای ساختن شیئ ها و احضار متدهای سازنده مورد استفاده قرار می گیرد. برای مثال:
همچنین برای ساختن نمونه هایی از نوع های بی نام ، کاربرد دارد:
عملگر new همچنین برای احضار (invoke) کردن متد سازنده پیش فرض نوع های مقداری مورد استفاده دارد. مثلا":
در بیان قبل، i با صفر مقداردهی اولیه می شود، که مقدار پیش فرض برای نوع int می باشد. تاثیر این بیان مشابه بیان زیر است:
به خاطر داشته باشید که اعلان یک متد سازنده پیش فرض برای یک struct (ساختار) یک خطا محسوب می شود، زیرا همه نوع های مقداری بصورت پیش فرض دارای یک متد سازنده public (عمومی) هستند. برای تنظیم مقدار اولیه نوع struct ، امکان اعلان متدهای سازنده دارای پارامتر بر روی نوع struct وجود دارد، اما این کار فقط زمانی انجام می شود که مقداری به غیر از مقدار پیش فرض مورد نیاز باشد.
اشیاء نوع مقداری از جمله struct در پشته (stack) ساخته می شوند، درحالی که اشیاء نوع مرجع مثل کلاس ها در حافظه انبوه (heap) ساخته می شوند. هر دو نوع از اشیاء (نوع مقداری یا نوع مرجع) بصورت خودکار از بین می روند، اما اشیاء نوع مقداری زمانی از بین می روند که از حوزه (scope) خود بیرون روند، در حالی که اشیائی که بر پایه نوع های مرجع هستند در زمانی نا معلوم بعد از آخرین ارجاع به آنها حذف می شوند. در برخی مواقع برای نوع های مرجعی که منابع ثابتی از جمله مقدار زیادی از حافظه، دسگیره های فایل (file handler) و یا اتصالات شبکه ای را مصرف می کنند، مطلوب است که عمل فینالیزاسیون (حذف شیئ از حافظه) بصورت قطعی در یک زمان خاص، انجام بپذیرد تا مطمئن شویم آن شیئ در صورت امکان بلافاصله از بین می رود.
عملگر new را نمی توان بازنویسی (overload) کرد.
اگر عملگر new نتواند حافظه اختصاص دهد، استثنا OutOfMemoryException را پرتاب می کند.
مثال
در مثال زیر، یک شیئ struct و شیئ class ساخته شده اند و توسط عملگر new مقداردهی اولیه شده اند، سپس به آنها مقادیری انتساب داده شده است. مقدار پیش فرض و مقدار انتساب داده شده به نمایش در می آید.
ممنون زحمت کشیدید بسیار عالی بود