PDA

View Full Version : اجرای event در زمان نومنه ساختن از class



sqlserver
چهارشنبه 04 بهمن 1391, 17:34 عصر
با سلام و خسته نباشید ..سوال من این هست ..اگه میشه جوابمو بدین..خیلی کار کردم ولی به جواب نرسیدم
....چطور میتونیم .در زمان ساخت شی (نمونه) از روی کلاس event کلاس رو اجرا کنیم..بلافاصله بعد از ایجاد instance از کلاس ؟؟؟؟:افسرده::افسرده::افسرده: :افسرده::افسرده::افسرده::افس ده::افسرده::افسرده::افسرده:: فسرده::افسرده::افسرده::افسر ه::افسرده::افسرده::افسرده::ا سرده::افسرده::افسرده::افسرد ::افسرده::گریه::گریه::گریه::گ یه::گریه::گریه::گریه::گریه::گ یه::گریه::گریه::گریه::گریه::گ یه::گریه:

Y_Safaiee
چهارشنبه 04 بهمن 1391, 17:59 عصر
سلام دوست من

راههای زیادی هست ساده ترین مثال اینه :

کد کلاس :



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
class Class1
{
public Class1 ()
{
mess();
}

private void mess()
{
MessageBox.Show("Ok");
}
}
}


کد فرم :


private void Form1_Load(object sender, EventArgs e)
{
Class1 cls = new Class1();
}


به محض اینه برنامه اجرا شه یه شئی از کلاس ساخته میشه و رویداد mess صدا زده میشه.

حتی اگه داخل بخش که تابع رو صدا زدم هم کدتو بنویسی کاری که میخوای انجام شه اجرا خواهد شد.

موفق باشی
بایت بایت

sqlserver
جمعه 06 بهمن 1391, 16:11 عصر
ممنون از شما ..ولی این کلک هست..سوالی که من پرسیدم ..درسته شاید کاربرد منطقی در اکثر جاها نداشته باشه ..ولی این جوابش نیست..جواب اینه:

namespace byMirHassanMoosavi /*This ProblemSet is very Easy!!*/
{
#region UsingScope
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#endregion

#region ProblemSet
namespace evtFiring
{
#region SolutionScope
public delegate void OnCreateEvent(); //delegate declaration

[Serializable()]
public class Person
{
public static event OnCreateEvent CreateEvent; //static event declaration (delegate in use!)

#region Props & Field
public string Name { get; set; }
public string Family { get; set; }
public string SerializableStatus = string.Empty;
#endregion

#region Constructor
public Person() //default Constructor & event firing place
{
this.Name = "unknown-name!";
this.Family = "unknown-family!";
//Using Lambda Expression for declare an anonymous method
Person.CreateEvent += new OnCreateEvent(() =>
{
#region ChangeConsoleTheme
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
#endregion

if (this.GetType().IsSerializable == true)
this.SerializableStatus = "is";
else SerializableStatus = "is not";

Console.WriteLine(
"\r\nThe Instance of Person Class Created in - {0} - with \r\nFollowing Information|>\r\n\r\n\t|> Name: {1}\t\r\n\t|> Family: {2}\t\r\n\r\n\t|> {1} {2} HashCode Is: {3}\t\r\n\t|> {1} {2} Type Is: {4}\t\r\n\t\r\n\t|> {1} {2} {5} Serializable.\r\n",
DateTime.Now.ToString(),
this.Name, this.Family,
this.GetHashCode().ToString(), this.GetType().Name, SerializableStatus);
});
//First Check then fire!!
if (CreateEvent != null)
{
CreateEvent();
}
}
public Person(string name, string family)//Main Constructor
{
this.Name = name;
this.Family = family;
//Using Lambda Expression for declare an anonymous method
Person.CreateEvent += new OnCreateEvent(() =>
{
#region ChangeConsoleTheme
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Clear();
Console.ForegroundColor = ConsoleColor.Green;
#endregion

if (this.GetType().IsSerializable == true)
this.SerializableStatus = "is";
else SerializableStatus = "is not";

Console.WriteLine(
"\r\nThe Instance of Person Class Created in - {0} - with \r\nFollowing Information|>\r\n\r\n\t|> Name: {1}\t\r\n\t|> Family: {2}\t\r\n\r\n\t|> {1} {2} HashCode Is: {3}\t\r\n\t|> {1} {2} Type Is: {4}\t\r\n\t\r\n\t|> {1} {2} {5} Serializable.\r\n",
DateTime.Now.ToString(),
this.Name, this.Family,
this.GetHashCode().ToString(), this.GetType().Name, SerializableStatus);
});
//First Check then fire!!
if (CreateEvent != null)
{
CreateEvent();
}
}
#endregion
}
#endregion

#region Using'Solution'
class Program
{
static void Main(string[] args)
{
Person p = new Person("MirHassan", "Moosavi");

Console.WriteLine("------------------------------------------------------------------------");

//Person p2 = new Person();



Console.ReadKey();

}
}
#endregion
}
#endregion
}



:شیطان::لبخند::شیطان::لبخند:: یطان::لبخند::شیطان::لبخند::ش طان::لبخند::شیطان::لبخند::شی ان::لبخند:
98989