منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ما ذا يعني هذا الكود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
ما ذا يعني هذا الكود

كود :
<[In](), Out()>
و
ByRef + ByVal
ByRef : ترجع قيمة للمتغير الذي مرر القيمة للاجراء او الدالة ، مثلا :: ارسلنا المتغير X الى اجراء او دالة و احدثنا تغير بداخل الدالة على قيمة المرر اليها ، فان قيمة المتغير X ستتغير تبعا للقيمة الجديدة

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

كنت زودتك بمثال و لكن أظن انك ستفهم من الكلام و عندما اعود من العمل ساحاول تزويدك بمثال
هذه بلغة فيجول بيسك ..؟ <[In](), Out()>
السكر المغرور كتب :هذه بلغة فيجول بيسك ..؟ <[In](), Out()>

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

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

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





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


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 





السلام عليكم ورحمة الله وبركاته
اقصد هذا الكود
كود :
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
طيب مشكور على التوضيح يا أخ ابو رائد ،،
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
بارك الله فيك اخي
السكر المغرور كتب :ByRef : ترجع قيمة للمتغير الذي مرر القيمة للاجراء او الدالة ، مثلا :: ارسلنا المتغير X الى اجراء او دالة و احدثنا تغير بداخل الدالة على قيمة المرر اليها ، فان قيمة المتغير X ستتغير تبعا للقيمة الجديدة

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