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

إسناد عدد مباشرة لفئة خاصة هل هذا ممكن ؟

بدأه hfsh80 في 15 يونيو 2008 · 6 رد · 936 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الفئة التالية مبسطة لوحدات الطول :

Public Class Meters

	Private m, dcm, cm, mlm As Double

	Sub New()

		m = 0
		dcm = 0
		cm = 0
		mlm = 0

	End Sub

	Public Function ToDcm() As Double

		Return dcm

	End Function

	Public Function ToCm() As Double

		Return cm

	End Function

	Public Function ToMlm() As Double

		Return mlm

	End Function

	Public Property Meter() As Double
		Get
			Return m
		End Get

		Set(ByVal value As Double)

			m = value
			dcm = m / 10
			cm = dcm / 10
			mlm = cm / 10

		End Set
	End Property

End Class

الان لاستخدام هذه الفئة كما تعلمون فإننا نكتب :

Dim a As New Meters

هل بالامكان وضع قيمة مباشرة للكائن A بالشكل التالي :

A=9

بحث تسند القيمة 9 للمتغير M داخل الفئة؟

حاولت باستخدام الـ Operator للمعامل = ولكن ما فهمته أن استخدام هذا المعامل ينفع فقط في الحالات الشرطية أي أنه يعود بمتغير من نوع Boolean ، حاولت أن أجعل الخاصية Meter افتراضية ولكن يجب استخدام الأقواس مع الكائن عند الاسناد وهذا ما لا أريده .

أتمنى أن تكون الصورة واضحة الآن ولكم أجمل تحية

#3

اعتقد هذا هو الحل ، والله اعلم

مشكلتي ان عرف الc#

class Meters
{
	public static Matrix operator =(double x)
	{
		Meters m = new Matrix();
		M.Meter = M
		return newMatrix;
	}
}

ولكنني حاولت ان اترجم لك بالVB ، و لاتزعل اذا فيها خطأ

Public Shared Operator =(ByVal x As doubel) As Meters
	dim  m as New Meters
	M.Meter = M
	Return m
End Operator
#4

اخي ، معليش ، هناك خطأ ، لا يمكنك عمل operator overloading للاسناد في الvb ، فقط ال comparison operator

#5

الاخوة System Down و yasirhantoush

بارك الله فيكم شكرا على هذه المعلومات :)

تحياتي

#6

السلام عليكم

وجدت الحل أيها الإخوة وأحببت أن أضعه هنا للفائدة :)

http://www.codeproject.com/KB/cs/Csharp_im...t_operator.aspx

الموقع السابق يعرض الطريقة باستخدام C# عن طريق استخدام الكلمة المحجوزة implicit بإمكانك استخدام مواقع التحويل لتحويل الكود إلى vb net لتلاحظ أن الكلمة المناظرة لها في الـ vb net هي Widening

لكم مني أجمل تحية

#7
yasirhantoush كتب:
اخي ، معليش ، هناك خطأ ، لا يمكنك عمل operator overloading للاسناد في الvb ، فقط ال comparison operator

كلامك خاطئ 100% يمكن عمل Operator Overloading في Vb .net لأي معامل مهما كان معامل حسابي أو منطقي أو غيرها يرجى التأكد من صحة المعلومة قبل كتابتها في المنتدى إقرأ موضوعي التحميل الزائد للمعاملات Operators Overloading

الأخ صاحب السؤال

مع أنك وجدت حلا - إلا انه أرجو أن تسمح لي بإضافة صغيرة

أعتقد أنه يمكن عمل ما تريد وذلك باستخدام Object Initializers وهنا ادعوك لقراءة موضوعي بهذا الخصوص Object Initializers

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 20 يوليو 2008 في 22:33

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…