تحويل حدث VB.NET مع وسيطات حدث متعددة إلى C#
-
21-09-2019 - |
سؤال
أنا بصدد زرع اختبار الوحدة المكتوبة في vb.net إلى المشروع الأكبر المكتوب في C#. ومع ذلك ، فإن هذا القدر الصغير يجعلني أبحث عن المساعدة:
Public Sub object_DataChange(ByVal TransactionID As Integer, _
ByVal NumItems As Integer, _
ByRef ClientHandles As System.Array, _
ByRef ItemValues As System.Array, _
ByRef Qualities As System.Array, _
ByRef TimeStamps As System.Array) _
Handles myObject.DataChange
'' Does event code here
End Sub
ما هي أفضل طريقة لتحويل هذا الحدث؟ أيضا ، هل هذا مثيل جيد للاستخدام EventHandler<>
لتوحيد حججاتي في هيكل؟
المحلول
في هذه الحالة ، أنت تُظهر فعليًا معالج الأحداث مقابل حدث. ج# ليس لديه Handles
جملة فكرة ذلك VB.NET لديها. بدلاً من ذلك ، يجب عليك تعيين معالج حدث يدويًا لحدث مثل ذلك:
myObject.DataChange += this.object_DataChange;
وفي المقابل ، عندما تنتهي من الحدث ، يجب عليك إزالة المعالج مثل:
myObject.DataChange -= this.object_DataChange;
يمكن ترجمة معالج الأحداث الفعلي على النحو التالي.
void object_DataChange(
int TransactionID,
int NumItems,
ref System.Array ClientHandles,
ref System.Array ItemValues,
ref System.Array Quantities,
ref System.Array TimeStamps) {
...
}
لا تنتمي إلى StackOverflow