22-09-16, 05:38 PM
اخي الفاضل الشاكي لله
كلامك جيد جدا .............
لكن فعليا لايوجد فارق كبير بين Structure و Class إلا في الأفضلية للإستخدام مع ٌValueType و Ref Type
وأكاد اجزم انه لا يوجد فارق علي الإطلاق
الأمر كله مرتبط بأسلوب كتابة الكود الخاص بأي Structure
و اسمح لي أن اقبتس من كلامك الأتي تحديدا
اعتقد ان اسلوب كتابة Structure الخاص بك هو ما يؤثر في عملية Clone
حاول تعيد كتابة Structure بهذا الشكل
ثم حاول صياغة الكود الخاص بك مرة اخري ليكون هكذا
تقبل تحياتي و عذرا لكتابة الكود بلغة VB.net
كلامك جيد جدا .............
لكن فعليا لايوجد فارق كبير بين Structure و Class إلا في الأفضلية للإستخدام مع ٌValueType و Ref Type
وأكاد اجزم انه لا يوجد فارق علي الإطلاق
الأمر كله مرتبط بأسلوب كتابة الكود الخاص بأي Structure
و اسمح لي أن اقبتس من كلامك الأتي تحديدا
إقتباس :يالها من فاجعة .... كيف ذلك !!
فكما نلاحظ لم يتم العبث في قيمة الكائن vector2 ، بل تم التعديل على الكائن vector
اذن مادخل الكائن المسكين vector2 في الموضوع . هل فقط لانه استعار القيمة الابتداية من الكائن vector !!! ياللظلم
اعتقد ان اسلوب كتابة Structure الخاص بك هو ما يؤثر في عملية Clone
حاول تعيد كتابة Structure بهذا الشكل
PHP كود :
Public Structure Vector3D
Implements ICloneable
Public Property X As Integer
Public Property Y As Integer
Public Property Z As Integer
Public Function Clone() As Object Implements ICloneable.Clone
Return Me.CreateDeepCopy(CreateShallowCopy())
End Function
Friend Function CreateShallowCopy() As Vector3D
Return CType(New Vector3D With {.X = 0, .Y = 0, .Z = 0}, Vector3D)
End Function
Friend Function CreateDeepCopy(current As Vector3D) As Vector3D
Return current
End Function
End Structure
ثم حاول صياغة الكود الخاص بك مرة اخري ليكون هكذا
PHP كود :
Dim v As Vector3D = New Vector3D With {.X = 100, .Y = 200, .Z = 300}
Dim v1 As Vector3D = v
v1.X = 10
v1.Y = 20
' هذا السطر من الكود الهدف منه عرض النتائج فقط
Me.Text = v1.X & "," & v1.Y & "," & v1.Z
تقبل تحياتي و عذرا لكتابة الكود بلغة VB.net

