الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أرجو منكم شرح هذه القصاصة من كود C#

بدأه TMS في 25 أبريل 2008 · 2 رد · 1,267 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباً

لدي هذا التابع البسيط :

  public void OnMessageReceived(MessageEventArgs e)
		{
			string[] args = (string[])e.Message;

			if (args.Length == 2 && args[0] == "/sw")
			{
				this.BeginInvoke((MethodInvoker) delegate { downloadList1.NewDownloadFromData(args[1]); });
			}
			else
			{
				downloadList1.AddDownloadURLs(ResourceLocation.FromURLArray(args), 1, null, 0);
			}
		}

و كنت احاول تحويله لكود VB , و لكن جميع البرامج و المواقع التي تقوم بهذا التحويل عجزت عن تحويل جملة this.BeginInvoke و أنا نفسي لم أفهم كيف قاموا بعملية Invoke بهذه الطريقة في C# ! ارجوا من أحدكم ان يساعدني في تحويله الى VB و كيفية عمل الـ Invoke بهذه الطريقة.

و شكراً للجميع

newslatterlogo.jpg
#2
Private Delegate Sub FuncDelegate(ByVal v As String)

Public Sub OnMessageReceived(ByVal e As MessageEventArgs )
	'...
	If ((args.Length = 2) AndAlso (args(0) = "/sw")) Then
		Dim funcProc As FuncDelegate = New FuncDelegate(AddressOf downloadList1.NewDownloadFromData)
		MyBase.BeginInvoke(funcProc, New Object() { args(1) })
	Else
		downloadList1.AddDownloadURLs(ResourceLocation.FromURLArray(args), 1, Nothing, 0)
	End If
End Sub

الجزء الموجود بشيفرة السي شارب والخاصة بـ delegate تم عملها بطريقة Anonymous Methods ولا اعلم ان كانت متاحة في VB 2005

بالتوفيق ان شاء الله

تم تعديل هذه المشاركة بواسطة Moudey في 26 أبريل 2008 في 03:13

مواضيع متنوعة

#3

شكراً لك أخي Moudey

للمزيد من المعلومات عن Anonymous Methods و التي فعلاً غير متاحة في VB.NET انظر :

http://www.groupsrv.com/dotnet/about201657.html

newslatterlogo.jpg

مواضيع مشابهة