منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ما ذا يعني هذا الكود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ما ذا يعني هذا الكود (/showthread.php?tid=8940)

الصفحات: 1 2


ما ذا يعني هذا الكود - مدري - 19-05-13

ما ذا يعني هذا الكود

كود :
<[In](), Out()>
و
ByRef + ByVal



ما ذا يعني هذا الكود - السكر المغرور - 19-05-13

ByRef : ترجع قيمة للمتغير الذي مرر القيمة للاجراء او الدالة ، مثلا :: ارسلنا المتغير X الى اجراء او دالة و احدثنا تغير بداخل الدالة على قيمة المرر اليها ، فان قيمة المتغير X ستتغير تبعا للقيمة الجديدة

ByVal : لا ترجع قيمة للمتغير الذي مررناه الى الدالة او الجراء الذي فيها ، و المثال عكس المثال السابق

كنت زودتك بمثال و لكن أظن انك ستفهم من الكلام و عندما اعود من العمل ساحاول تزويدك بمثال


ما ذا يعني هذا الكود - السكر المغرور - 19-05-13

هذه بلغة فيجول بيسك ..؟ <[In](), Out()>


ما ذا يعني هذا الكود - مدري - 19-05-13

السكر المغرور كتب :هذه بلغة فيجول بيسك ..؟ <[In](), Out()>

اي نعم تنضاف قبل ال ByRef
لكن لا ادري ما القصد منها او ما المعنى لها


ما ذا يعني هذا الكود - السكر المغرور - 19-05-13

ما ادري بس تقريبا نفس اعمل الي شرحتها و لكنها خاصه بلغة c# و ليس فيجول بيسك

باقي الاعضاء يمكن يفيدوك أفضل مني


ما ذا يعني هذا الكود - @@أبورائد@@ - 19-05-13


السلام عليكم ورحمة الله وبركاته





الأخ يقصد هذا الكود، بس غير متفرغ للشرح، إذا أمكن أخي
السكر المغرور تفي بالشرح أكون شاكر.


PHP كود :
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim dd
(5) As Object
        b
(dd)

    
End Sub

    Sub a
(ByRef Out())
        
'
    End Sub

    Sub b(ByRef [In]())
        '
    
End Sub 





السلام عليكم ورحمة الله وبركاته



ما ذا يعني هذا الكود - مدري - 19-05-13

اقصد هذا الكود
كود :
Public Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesRead As IntPtr) As Int32
لاحظ بعد lpBaseAddress As IntPtr


ما ذا يعني هذا الكود - السكر المغرور - 19-05-13

طيب مشكور على التوضيح يا أخ ابو رائد ،،
PHP كود :
[align=left]
[
quote]  Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim dd
(5) As Object
        b
(dd)

    
End Sub

    Sub a
(ByRef Out())
        
'
    End Sub

    Sub b(ByRef [In]())
        '
    
End Sub  [/align


نفس الفكرة التي بالاعلى بالنسبه للدالتين ByRef و ByVal و لكن بهذا الشكل فقط مررنا كائن لها بدل المتغير

بالنسبه Out تم تعريفه و مررناه بكل بساطه الى الدالة Sub

ممكن اعرف كود اخر بهذا الشكل ::
PHP كود :
[align=left]

    Private 
Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim dd
(5) As String
        b
(dd)
        
Dim out(2) As String
        a
(out)
    
End Sub

    Sub a
(ByRef Out() As String)
        
'
    End Sub

    Sub b(ByRef [In]() As String)
        '
    
End Sub[/align
كما تلاحظ مررتها بشكل مصفوفه نصيه ،، بالنسبه لل out و in ممكن تكون اسم اي متغير اللهم بهذا المثال وضع اسماء ممرات حتى تفرق ان هذا الممرر للادخال و هذا الاخراج
طيب لماذا تم وضع [In] بهذا الشكل ،،، لانها متغير و يحمل اسم دالة في فيجول بيسك و هذا خطأ لذلك عندما نود ان نعرف متغير بكلمة محجوزه في النظام نضعها بين [] مثال : لو اردت تعريف المتغير Dim فانه سيضع لي خطأ فيجول بيسك عندما اعرفه بهذا الشكل

dim dim as string

و لكن حتى يصبح السطر صحيح اعرفه بهذا الشكل

dim [dim] as string

اتمنى وضحت الفكرة ،، اي ان In و out مجرد متغيرات من الممكن ان تضع اي شيء عوضا عنها


هذا و الله اعلم لانه اجتهاد و اذا اخطأت اتمنى احد يصحح لي المعلومه بعد Smile


ما ذا يعني هذا الكود - مدري - 20-05-13

بارك الله فيك اخي


ما ذا يعني هذا الكود - مدري - 20-05-13

السكر المغرور كتب :ByRef : ترجع قيمة للمتغير الذي مرر القيمة للاجراء او الدالة ، مثلا :: ارسلنا المتغير X الى اجراء او دالة و احدثنا تغير بداخل الدالة على قيمة المرر اليها ، فان قيمة المتغير X ستتغير تبعا للقيمة الجديدة

سؤال هل يوجد طريقه لتسريع العمليه هذي الا وهي مضاعفة سرعة ظهور القيمه و سرعة تمرير المتغيير
اصلا هذا هدفي من ورى الموضوع هذا قلت في نفسي يمكن <[In](), Out()> لها علاقه بالسرعه او شي ههه