‫مرحبًا بعودتك.
‫في هذا الفيديو ، سوف نتحدث عن أخطارك بتغيير الخاصية ، لذا حول هذه الواجهة التي تسمح لنا بتشغيل
‫شيء ما إذا تم تغيير الخاصية ورأينا تغيير الخاصية في الفيديو الأخير عندما كنا
‫نستخدم الربط وسنقوم بذلك الأمر مختلف قليلاً هذه المرة وسترى كيفية
‫استخدام هذه الواجهة بنفسك.
‫لذا بدلاً من الشبكة ، أريد استخدام لوحة مكدس لأنني أريد تكديس الأشياء
‫وسأقوم بتكديس ، أولاً وقبل كل شيء ، تسمية سأقوم بتعيين المحتويات عليها ، رقم واحد ، و سأغلق هذه التسمية
‫من هذا القبيل.
‫وأدناه أريد أن يكون لدي مربع نص حيث يمكننا إدخال قيمة.
‫لذلك لن أستخدم مربع نص في مربع نص هنا.
‫سأغلقه على الفور هكذا.
‫وفي مربع النص ، أريد أن أحصل على عرض 100 بكسل ، بارتفاع لنقل 30 بكسل.
‫ثم أريد ضبط النص.
‫الآن يجب أن يكون النص مرتبطًا ، لذلك سأستخدم ربط البيانات هنا.
‫والمسار الذي أرغب في استخدامه سيكون رقم واحد وسيكون الوضع ثنائي الاتجاه.
‫لذلك رأينا ما يعنيه هذا الوضع وما يعنيه هذا المسار.
‫فلننسخ هذا الرمز الآن ونكرره هنا.
‫لذلك سأقوم بنسخه ولصقه مرتين.
‫لذلك لن يكون هذا متشابهًا هنا وستكون هذه نتيجة.
‫إذن هذه ستكون النتيجة وسيكون هذا رقم ثلاثة.
‫لذا قد تتساءل الآن ، ما هو هذا الرقم واحد؟
‫العدد الثاني والنتيجة ، لأن لدينا رقم واحد ورقم اثنين وهكذا.
‫لكن هذه مجرد محتويات.
‫إنها ليست أسماء.
‫لذا من أجل الاتصال بهم أو استخدامها ، نحتاج إلى الدخول في الكود الخاص بنا خلفنا لأنني أريد إنشاء تلك الموجودة
‫هنا.
‫لذلك سأقوم بإنشاء فصل جديد في الواقع ، لأننا سنستخدم النافذة الرئيسية كبرنامجنا بشكل مشابه
‫لبرنامجنا.
‫لكنني أريد أن أعلم بالتغيير ، ومن أجل استخدام هذه الواجهة ، أحتاج إلى إنشاء فئة جديدة
‫يمكن أن ترث منها.
‫لذا سأستخدم فصلًا جديدًا هنا وسأطلق عليه بعضًا لأن ما أريد القيام به هو إذا عدنا إلى ملف المثال لدينا ، لدينا
‫هذا العدد الأول والعدد الثاني والثالث.
‫وما أريده هو إذا أضفت قيمة هنا وقيمة هناك ، فإن القيمة هنا في الأسفل يجب أن تكون
‫تلقائيًا مجموع الاثنين من قبل.
‫حسنا.
‫لذلك سأستخدم فصلًا جديدًا لذلك.
‫وهذه الفئة يجب أن ترث من أنا أخطر تغيير الخاصية.
‫ولكي تفعل ماذا؟
‫لاستخدام هذا أخطر تغيير الخاصية.
‫نحن بحاجة إلى استخدام نموذج مكون النظام.
‫لذلك سأستخدم نموذج مكون النظام.
‫الآن يمكنك أن ترى أن واجهتنا خضراء وهو اللون الأخضر الفاتح عمومًا وهو لون الواجهة
‫في Visual Studio والآن يمكنني إصلاح هذه الأخطاء المحتملة.
‫لذلك ترى أنني بحاجة إلى تنفيذ الواجهة.
‫لذا سأفعل ذلك.
‫وكما ترى ، لدينا هذا الحدث العام ، تغيرت الخاصية ، تغيرت خاصية معالج الحدث.
‫والآن من أجل استخدام ذلك ، سنحتاج إلى إنشاء طريقة خاصة تسمى void on property change ، والتي
‫ستأخذ خاصية.
‫وفي حالتي ، ستكون هذه الخاصية عبارة عن سلسلة.
‫وأريد التحقق أولاً إذا تم تغيير الخاصية ، فإن الخاصية التي تم تغييرها ليست فارغة ، لذلك لا تساوي فارغة.
‫لأنه إذا كان الأمر كذلك ، فأنا أريد المضي قدمًا والاتصال بالعقار.
‫تغيرت الخاصية.
‫هذه الخاصية الجديدة من النقطة تغيرت أقواس الأحداث ، والتي سأقوم بتسليمها إلى الخصائص.
‫لذلك تغيرت الخاصية أقواس الأحداث ، كما ترون.
‫يحتاج إلى اسم خاصية سلسلة.
‫واسم الخاصية الذي أريد تسليمه هو الخاصية نفسها.
‫لذا عند تغيير الخاصية سوف نطلق على هذه الخاصية وسأدخل خاصية هنا.
‫حسنا.
‫لذلك سوف نسمي هذا الحدث تغيير الخاصية ببساطة.
‫والآن ، من أجل استخدام كل ذلك ، نحتاج إلى امتلاك العديد من الخصائص.
‫وسأبدأ بإنشاء حقول خاصة أولاً.
‫إذن ، سلسلة نصية خاصة رقم واحد ، ثم سلسلة نصية خاصة رقم اثنين ، وأخيرًا سلسلة نصية خاصة تسمى النتيجة.
‫والآن أقوم بإنشاء خصائص لكل هؤلاء.
‫لذلك سأقوم بإنشاء خاصية تسمى NUM واحد.
‫وهذه الخاصية رقم واحد يجب أن تكون مختلفة قليلاً عن الخاصية القياسية.
‫لذلك لن أستخدم هذا الوضع الأساسي ، سأستخدم تعريفًا ذاتيًا ، لذلك سأقوم بتعريف واحد بنفسي ويجب
‫ألا يعيد الرقم واحد ، ولكن يجب أن يعود جيدًا ، وليس واحد مع رأس المال ، وليس الملكية
‫، ولكن في الواقع هذا الحقل هنا.
‫لذلك ستتم إعادة تسميته بإرجاع الرقم واحد.
‫لذا قم بإرجاع الأس واحد.
‫وإذا قمت بتعيين شيء ما ، فأنا أرغب في تعيين القيمة.
‫بالمناسبة ، أستخدم سلسلة هنا في الجزء العلوي ، لذلك يجب أن تكون ممتلكاتي أيضًا سلاسل.
‫لذا سأعيد العدد واحد.
‫والآن إذا حاول شخص ما تعيين الرقم الأول ، فأنا أريد أن أحاول تحليل ذلك لأنه ماذا لو لم يكن رقمًا أدخله المستخدم؟
‫ماذا لو دخل ، لا أعرف ، رسائل أو شيء من هذا القبيل؟
‫ثم أريد أن أمسك ذلك وأغيره.
‫لذا سأستخدم رقم INT وسأقوم بإنشاء boo جديد هنا سأذهب إلى النتيجة ستكون
‫int ، أحاول التحليل وسأحاول تحليل القيمة وأنا ' م ذاهب لإخراج الرقم.
‫لذلك رأينا محاولة التحليل من قبل.
‫ما يفعله ببساطة هو أنه يحاول تحليل القيمة المعطاة في عدد صحيح وإذا نجحت فسيكون
‫ذلك صحيحًا.
‫وإذا لم تنجح ، فسيكون خطأ.
‫وبالمناسبة ، إذا نجح الأمر ، فسنحصل على الرقم أيضًا.
‫لذا إذا كان بإمكاني أو إذا حصلت على قيمة موجبة الآن ، فسأقول فقط أن العدد واحد سيكون هو القيمة.
‫وأيضًا ما أريد تغييره أو المشغل هو تغيير الخاصية وسأقوم بتشغيل
‫NUM.
‫حسنا.
‫لذا سأقوم بتغيير خاصية العدد واحد هذه إذا تغيرت القيمة.
‫الآن ما يمكننا فعله أيضًا هو نسخ ذلك لرقمنا الثاني.
‫إذن العدد اثنان وسأغير ذلك إلى العدد اثنين.
‫سيكون أيضًا رقمًا وهنا سيكون رقم اثنين وهناك أيضًا.
‫والآن نحتاج أخيرًا إلى خاصية للنتيجة.
‫لذلك سأقوم بإنشاء نتيجة السلسلة العامة هذه وستحصل أيضًا على مجموعة مجموعة.
‫إذن هنا سيكون الحصول على نتيجة ستكون سليمة ، رقم واحد.
‫بالإضافة إلى أنه ليس كذلك.
‫الآباء والأمهات اثنين.
‫ولماذا يمكنني أن أفعل ذلك الآن؟
‫حسنًا ، لأنني أعيدهم إلى وكلما أضعهم واحدًا وأنا اثنان.
‫لذا ، فالآحاد الموجودة هنا ، هي أعداد صحيحة بالفعل لأنه تم تعيينها فقط ، ولها قيمة فقط إذا
‫كانت عددًا.
‫وإلا فلن يتم تعيينهم أبدًا.
‫سيكونون فارغين.
‫ثم ما نحتاجه للمضي قدمًا والقيام به هو إعادة شيء ما هنا.
‫لذا سأعيد الباقي إلى الخيط.
‫إذن النتيجة والآن إذا حاول شخص ما تحديد النتيجة ، فسأقوم ببساطة بما يلي.
‫لذلك ستكون نتيجة int هي int pars.
‫في الواقع نفس الشيء الذي فعلناه هنا ، فقط أننا لا نعيده ، لكننا وضعناه.
‫لذلك ستكون النتيجة راحة في الخيط.
‫والآن نسمي خاصية الأمم المتحدة التي تغيرت للنتيجة التي توصلنا إليها ونفس الشيء ينطبق على العدد اثنين والعدد
‫واحد.
‫إذن ماذا يفعل ذلك.
‫لذلك تغيرت خاصية الأمم المتحدة هذه.
‫كما يمكنك أن تتذكر ، فإنه يغير قيمة العقار.
‫لذلك تغيرت الخاصية أقواس الأحداث وستتخذ الخاصية وستطلق على
‫هذه الخاصية تغيرت الحدث ثم كل تلك الخصائص.
‫لذلك سيتم إخطار الخاصية رقم واحد والخاصية رقم اثنين والنتيجة الأولى ويجب تغيير
‫نتيجتنا.
‫لذا ما أريد الحصول عليه هو أنه في كل مرة يدخل فيها أحدهم رقمًا سيتغير هذا
‫الرقم أيضًا.
‫وقبل أن نتمكّن من التحقق من ذلك أو اختبار ذلك ، نحتاج إلى الخوض في. 0. 6 ملف وإنشاء كائن من فئة
‫معينة لدينا.
‫لذلك أنشأنا فئة ما وسأقوم بإنشاء كائن جديد.
‫سأقوم بإنشائه هنا ، والذي لن يكون مجرد كائن ، بل سيكون أيضًا خاصية.
‫لذلك سوف يتم الحصول على بعض الأشياء وتعيينها.
‫والآن من أجل الوصول إلى ذلك ، نحتاج إلى جعل بعضنا عامًا أيضًا.
‫لنجعل هذا الفصل عامًا والآن يمكننا المضي قدمًا واستخدام هذا الكائن.
‫الآن يمكنني تعيين هذا كائن ما ، كائن ما هنا في البداية.
‫وسأقول إنه مجموع جديد بقيمة ليست واحدًا ، والعدد اثنان ، فقط له قيمة ، دعنا نقول
‫ثلاثة.
‫وكما ترى ، علينا استخدام السلاسل هنا وإلا فلن تعمل لأن تلك الخصائص ، هي سلاسل
‫، أليس كذلك؟
‫الآن ما أحتاج إلى تسميته هو أو ما أحتاج إلى تعيينه هو تعيين سياق البيانات إلى كائن المجموع ، وإلا
‫فلن يحدث شيء.
‫فلنبدأ الآن في تشغيل هذا.
‫ثم ترى ، لم نحدد الرقم ثلاثة أبدًا ، وهذه هي النتيجة ، وربما يكون من الأفضل أن نسميها
‫بالفعل نتيجة.
‫لذلك دعنا نذهب هنا ونغير التسمية إلى نتيجة أو ربما بعض.
‫لذلك سيكون هذا هو المجموع.
‫ربما حتى شيء من هذا القبيل لا واحد ولا اثنين.
‫فلنبدأ الآن في تشغيله مرة أخرى.
‫وها أنت ذا.
‫واحد زائد ثلاثة يساوي أربعة.
‫فلنغيرها الآن إلى 25 ، لنقل.
‫وكما ترى ، فقد تغير.
‫فلنغير الآن قيمة 3 إلى 31.
‫ترى 56.
‫الآن ، إذا قمت بتغيير هذه القيمة هنا.
‫كما ترى ، يعود إلى قيمته الطبيعية لأن ما فعلناه هنا في The Setter.
‫إذا حاول شخص ما تعيين النتيجة ، فسنقوم ببساطة بتعيين النتيجة ، مرة أخرى ، على قيمة الأطراف النهائية ، رقم
‫واحد ، ورقم اثنين.
‫لذلك سيعود دائمًا إلى النتيجة الفعلية إذا حاولنا تحديد نتيجة نتيجة السلسلة
‫النصية.
‫لذا يمكنك الآن التلاعب بهذا ويمكنك حساب ما تريد وستحصل على إجابات
‫في الوقت الفعلي أو مبالغ جيدة في الوقت الفعلي لقيمك.
‫يمكنك المضي قدمًا وإضافة واحد آخر ، أو يمكنك الآن المضي قدمًا وتغييره ليكون مُضاعِفًا.
‫لكنني أعلم الآن أن هذا كان نوعًا من الإعداد الذي كان علينا القيام به.
‫ولذا أريد أن أتناولها مرة أخرى بسرعة حقيقية معك.
‫إذن في ملف XHTML ، كان لدينا هذه التسميات الثلاثة ومربعات النص الثلاثة ، والتي تمثل عناصر واجهة المستخدم
‫فقط ، أليس كذلك؟
‫ونص كل من هؤلاء مرتبط.
‫إذن ، هذا لديه المسار إلى الرقم واحد ، وهذا المسار له مسارهما اثنان ، وهذا المسار له المسار الذي يؤدي إلى
‫النتيجة.
‫وهؤلاء هم هؤلاء هنا.
‫إذن العدد واحد.
‫الخاصيتان num اثنان و num ثلاثة.
‫لقد أنشأنا فئة إضافية ترث من I notify property change ، وهي واجهة تحتوي على هذه
‫الخاصية التي تغيرت في معالج الحدث وهو حدث وسنقوم فقط باستدعاء تغيير الخاصية.
‫الآن أنشأنا طريقة تسمى تغيير الخاصية ، والتي تسمى في كل مرة يتم فيها تغيير
‫إحدى خصائصنا ، ويتم ذلك بمجرد تعيين الخاصية.
‫إذن لدينا هذه الخاصية رقم واحد وإذا كان شخص ما يحاول تعيين تلك القيمة على NUM واحد ، فسنقوم ببساطة
‫باستدعاء هذا عند تغيير الخاصية.
‫وهنا قمنا بتعيين الخاصية ، لذلك نقول ، حسنًا ، أعطني خاصية وقمنا بتغيير تلك الخاصية إلى القيمة
‫المعطاة.
‫لذلك ، لقد قمنا بتعيينه إلى حد كبير ، ولكن في نفس الوقت ، لا نقوم فقط بتعيين الشخص الذي
‫نضعه حاليًا من حيث المحدد.
‫لذلك نحن لا نضع الرقم واحد هنا فقط ، ولكننا أيضًا نعيّن النتيجة ولم نقم بتعيين ال وهنا
‫ترى هذا السطر هنا يعيّن هذا الحقل لذلك يغير حقل السلسلة الخاص وهذا في الخاصية تغير
‫في الواقع الملكية نفسها.
‫لذلك سوف يغير قيمة الخاصية نفسها ، ولكن في نفس الوقت سيغير قيمة
‫نتيجة الخاصية.
‫لذلك سنقوم بتحديث نتيجتنا في كل مرة نغير فيها قيمة العدد واحد وينطبق الشيء نفسه على العدد
‫اثنين وينطبق الشيء نفسه على النتيجة حيث قلت في كل مرة يتم فيها تغيير النتيجة ، نريد المضي
‫قدمًا واستدعاء هذا على طريقة تغيير الممتلكات كذلك.
‫الصحيح.
‫الآن ترى كيف يمكنك استخدام الذكاء الاصطناعي ، وإخطار الخاصية التي تغيرت كيف يمكنك استخدام هذه الواجهة ويمكنك استخدامها
‫بعدة طرق مختلفة.
‫ومن الممتع حقًا استخدامه كلما تم تغيير أي خاصية.
‫لنفترض أن اللون قد تغير وتريد إطلاق حدث يقوم ببعض الرسوم المتحركة
‫الرائعة أو يضغط شخص ما على زر سيتغير وخاصية في مكان ما في برنامجك وتريد أن يحدث
‫شيء رائع بعد ذلك.
‫يمكنك إعداد كل هذا مع هذا.
‫أخطرت واجهة تغيير الخاصية.
‫ما عليك فعله بالطبع هو إنشاء ارتباط وراثي هنا بين الفئة التي تستخدمها
‫وإخطار تغيير الخاصية.