عملگر new در refrence type ها
آيا عملگر new در refrence type ها الزامي است
در اين مثال براي تعريف يك متغيير از نوع delegate از new استفاده نشده؟
using System;
namespace Delegates
{
public delegate void MyDelegate(string Name);
class Program
{
private static void MethodA(string Name)
{
Console.WriteLine("Hello {0}", Name);
}
static void Main(string[] args)
{
MyDelegate Mydel1 = new MyDelegate(MethodA);
MyDelegate Mydel2 = MethodA; //inja Mydel2 ro instance nasakhte ba new
//pas chetori roye heap intialize mishe?
Mydel1("Mohsen");
Mydel2.Invoke("Jamshidi");
}
}
}
نقل قول: عملگر new در refrence type ها
اگر بخواهیم با استفاده از سازنده ی ریفرنس اینستنس رو مقداردهی اولیه کنیم بلی . یه وخ شما یه فرم دارید که از کلاس فرم به ارث برده . اما شما میاد بعد از نیو مینویسید فرم3 . اینظطوری با سازنده ی فرم 3 مقدار دهی اولیه میشه . اگر ننویسید انگار سازنده ای بهش اختصاص داده نشده .اینطوری کامپایلر به طور پیش فرض ازونجایی که همه کلاسها از کلاس آبجکت به ارث میبرند پس کلاس با سازنده ی آبجکت مقدار دهی اولیه میشه حالا گاهی کلاسهای استاتیک رو داریم که سازنده ندارند پس نیازی به عملگر نیو هم هنگام ایجاد اینستنس ندارند . .