PDA

View Full Version : سوال: عملگر new در refrence type ها



mehdihadeli
شنبه 06 شهریور 1389, 15:22 عصر
آيا عملگر 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");
}
}
}

میلاد قاضی پور
شنبه 06 شهریور 1389, 15:40 عصر
اگر بخواهیم با استفاده از سازنده ی ریفرنس اینستنس رو مقداردهی اولیه کنیم بلی . یه وخ شما یه فرم دارید که از کلاس فرم به ارث برده . اما شما میاد بعد از نیو مینویسید فرم3 . اینظطوری با سازنده ی فرم 3 مقدار دهی اولیه میشه . اگر ننویسید انگار سازنده ای بهش اختصاص داده نشده .اینطوری کامپایلر به طور پیش فرض ازونجایی که همه کلاسها از کلاس آبجکت به ارث میبرند پس کلاس با سازنده ی آبجکت مقدار دهی اولیه میشه حالا گاهی کلاسهای استاتیک رو داریم که سازنده ندارند پس نیازی به عملگر نیو هم هنگام ایجاد اینستنس ندارند . .