in 44 : 30 => when you write int x = 4; x = x+ 1; this will not create new variable in another location in memory it will just overwrite the old value with the new one in the same memory location. As Int is mutable Struct not immmutable
@Metigator3 ай бұрын
شكرا اخي الكريم للتنويه في الدقيقة 44:30 هناك خطأ قلت انه في متغير جديد رح ينعمل كنت فاكر اني عرفت متغير جديد الساعة كانت نص الليل ولكن الذي يتم فعليا هو استبدال القيمة عندما تقوم بكتابة x = x + 1، يتم استبدال قيمة x القديمة بالقيمة الجديدة، ولا يتم إنشاء موقع ذاكرة جديد. في لغة C#، النوع int هو نوع قيمة، لذا فإن المتغير x يحمل القيمة الفعلية. عندما تعيد تعيين x + 1 إلى x، يتم استبدال القيمة القديمة بالقيمة الجديدة مباشرة في نفس موقع الذاكرة. جل من لا يسهوا
@Metigator3 жыл бұрын
دعمنا بالتعليقات والإشتراك يعني الكثير ويعني أننا سنستمر في تقديم الأفضل
@aytech68673 жыл бұрын
عفوا استاذ شرحت في هذه الدورة عن mutable and immutable?
@Metigator3 жыл бұрын
@@aytech6867 ليس بعد
@aytech68673 жыл бұрын
@@Metigator الله يبارك فيك
@youssefAl24 Жыл бұрын
Update in C#10 .NET 6 : -> (4:00) we could declare parameterless constructor on a structure. -> (5:48) structure fields can be initialized when declared. Thank you Sir :)
@alimohasan3627 Жыл бұрын
thanks
@yasmine776 Жыл бұрын
يعطيك العافية لسه كنت بدور ع المعلومة
@abidredlove Жыл бұрын
in C# ver 10 now we can make constructor without parametres in struct type and also we can initialize failed that all in C# 10
@mohammedkh64638 ай бұрын
كمية المعلومات بهذه الحلقة رهيبة قمت بإعادتها اكثر من مرة من كثرة صعوبتها والمعلومات الثقيلة التي تحتويها
@ali_almuhandss3 жыл бұрын
قناة اكثر من رائعة ...بل اقوى قناة برمجية في الواطن العربي ... تستحق الكثييييير من الدعم ... نرجو من جميع المبرمجين والمتابعين الدعم لاستمر هذه الامكانيات العالية ....صدقوني لم ارى مثل هذه الامكانيات على اليوتيوب ولا حتى على الكورسات المدفوعة... هذا الشخص يشرح من كل كلبه الله يجزيه عنه خير الجزاء ويجعلها في ميزان حسناته.... اللهم وفقة ...اللهم وفقة ... اللهم وفقة .....اللهم امين يا رب العالمين.
@mohamedamin33142 жыл бұрын
حقيقي لا يكفيك مدح ولا ششكر استاذنا علي هذه الروعة التي تقدمها حلقة فوق الممتازة بارك الله فيك
@MohamedMohamed-k8e6y Жыл бұрын
يا أخي قسم ب الله انك رائع وفخم بكل المواصفات والمقاييسسس و انت شخص (اميوتبل ) في حياتي المهنية روووح ربي يرضى عليك ويبارك بصحتك وبأهلك
@AbuOmar12 ай бұрын
ما شاء الله . كل الشكر والاحترام لك اخي الكريم
@joudisoft2 жыл бұрын
محاضرة فعلاً دسمة ورائعة جداً , توضحت من خلالها الأمور اللي كانت غامضة علينا للمتغيرات من نوع int وغيرها وأيضاً الأمور المتعلقة بنوع المتغير DateTime , حالياً بالفعل فهمت كيف وليش كنا نتعامل مع التاريخ والوقت بالأسلوب اللي حكيت عنه في آخر المحاضرة , محاضرة ممتعة وفي غاية الأهيمة وبنصح الجميع بمشاهدتها وفهم انطلاق البرمجة الكائنية بعد استخدام الهياكل Structs من خلال توضيح الفروقات بين الفئة Class , الهيكل Struct أستاذ عصام بشكرك من كل قلبي على جهودك المبذولة وعلى المحتوى العلمي العظيم , جزاك الله خيراً, بارك الله فيك مع حضرتك بيكون الفهم ( الذي يعني أنت تكون مبرمج ) وليس الحفظ (الذي يعني أن تكون برنامج )
@Metigator2 жыл бұрын
احسنت وبارك الله فيك
@Zhouri7 ай бұрын
جزاكم الله خيرا
@omerash67812 ай бұрын
Great and rich lecture, I learned and understood many things, thank you, Mr .Issam
@Metigator2 ай бұрын
You are very welcome
@mohammedmshal324611 ай бұрын
ما شاء الله لا قوة إلا بالله تبارك الرحمن اللهم اجعله فى ميزان حسناته
@fatih-s2w4 ай бұрын
حلقة دسمة كثير بارك الله فيك مهندس عصام
@AhmedBambe3 жыл бұрын
بارك الله فيك
@Metigator3 жыл бұрын
وفيك أخي العزيز
@abdoziada20433 жыл бұрын
What a great videos, I literally wait for every new video
@Metigator3 жыл бұрын
Thank you Prince
@developernader2 жыл бұрын
كتر خيرك
@Metigator2 жыл бұрын
تسلم نادر وبارك الله فيك
@dukefleed53343 жыл бұрын
روعة يا اسطورة
@mohammedmostafa29142 жыл бұрын
جزيتم خيرا
@IbrahimGaber-de5yk Жыл бұрын
شكرا مهندس عصام علي الشرح الوافي.
@yamenassaf3564 Жыл бұрын
جزاك الله كل الخير مهندس عصام، في الدقيقه 28:30، أعتقد في خطأ بمنطق ال Add method، أعتقد كان الأصح أنه الكائن الجديد يكون محتواه (this.bit + value*scale) وليس (value*scale)
@Metigator Жыл бұрын
ِشكرا للتنويه ساراجعها باذن الله ولكنها غير مؤثرة على الهدف من الدرس باذن الله
@yamenassaf3564 Жыл бұрын
@@Metigator العفو مهندس عصام، صحيح، هي غير مؤثره، ولكن بالنسبه لي وكوني متعلم جديد اخدت معي بعض الوقت لاستوعبت الفكره. أنا بنهاية كل درس بقرأ التعليقات وبشوف اذا في شخص سائل سؤال تقني وبستفيد منه، لذلك حبيت اذكر هذه النقطه كونه ممكن تتبادر على بال المتعلم. بالنهاية، الله يبارك فيك وبجهدك الجبار، وبميزان حسناتك ان شاء الله. دمت بخير مهندس عصام
@ahmedelseiny111324 күн бұрын
@@yamenassaf3564 واحده من اكتر للحاجات اللي بتخلي الواحد يتعلم من كورس ما و كده هي اخطاء المعلم نفسه طبعا لازم تكون محدوده قدر الامكان ولاكن لما المحاضر بيغلط و انا المتلقي بعرف انه غلط بفضل فاكر المعلومه طول الوقت
@abdelrahmananwar885 Жыл бұрын
جميل استمر
@abutoka5299 Жыл бұрын
🎉❤ربنا يحفظك ويبارك فيك يا رب
@a.7db Жыл бұрын
واو رووووووعة استاذ عصام
@ChadKroeger-i2b8 ай бұрын
كل ما نتقدم بالكورس نحس انه عبتطور تفكيرنا البرمجي وعبتوضح الأمور أكتر ببداية الدرس منت عبقول انه ال struct غير مهم بس اكيد مع شرح المهندس عصام مالازم افوته اخر الدرس وقت نربطت الامور ببعضها وتوضحت شو هو ال struct وكيف كلشي value type عبارة عن struct تبين انه واحد من اهم الدروس بالكورس شكرا كتير استاذ عصام على الشرح الرائع ❤
@Mustafa127Amer Жыл бұрын
مشكور استاذ نتمنى مواضيع عن immutable اكثر
@OroGeek2 жыл бұрын
بارك الله فيك يا أستاذ من أفضل القنوات العالمية
@WaleedAlhakimi Жыл бұрын
جزاك الله ألف خير باش مهندس عصام
@AhmedMahmoud-uk9fc6 ай бұрын
جزاك الله عننا كل خير
@metwallyhassan4562 жыл бұрын
جزاك الله خيرا ... شرح منظم ورائع
@Metigator2 жыл бұрын
بارك الله فيك
@ahmedl16 ай бұрын
43:50 immutable
@abidredlove Жыл бұрын
الف شكر مهندس
@null-qk8si2 жыл бұрын
حلقة روعة ، تسلم كتير
@ahmadalsibakhi20792 жыл бұрын
من أجمل الحلقات علما ونفعا .... نسأل الله أن يجعل هذا العمل الرائع في ميزان حسناتك ومن تحب
@BasheerJarrah-l9p2 жыл бұрын
الله يعطيك العافية ويجزيك الخير
@ziadeltaher76402 жыл бұрын
الله ينفعك استاذنا 🌸
@waleedbensumaidea39472 жыл бұрын
حلقه جدا رائعه،. ادام الله عليك الصحة و العافية والتوفيق الدائم.. أستاذنا القدير عصام عبد النبي..
@mohamedadel62222 жыл бұрын
بارك الله فيك وشكرًا جزيًلا علي التفاصيل الجديده والرائعة ربنا يجزيك خيرا علي هذه المعلومات
@ahmedeisa4787 Жыл бұрын
حلقة دسمة فعلا
@mr.muhammedsameh10972 жыл бұрын
ممتاز.. جزاكم الله خيرا
@ahmedkamel5301 Жыл бұрын
جزاك الله خيرا يا بشمهندس عصام حلقة اكثر من رائعة , انا عملت المثال مع حضرتك ولكن لما جيت غيرت ال struct خليته class ادانى نفس الناتج لى ؟!! مش المفروض انه mutable ؟
@bashirmanafikhi2 жыл бұрын
احلى استاذ الله يعطيك كل شي بتتمناه
@mohamedoukajbar35782 жыл бұрын
جزاكم الله خيرا و بارك الله فيكم
@mohamedhakim9276 Жыл бұрын
رائعة ❤❤❤
@muhammadeissa16802 жыл бұрын
م.عصام في الدقيقة ٣٧:٢٥ حضرتك بتقول مفيش readonly في الكلاس ؟ حضرتك قبل كده في محاضرة الconstructor اعتقد شرحت موضوع الconstructor وكان على class .. لو حضرتك توضح الفارق من فضلك ، وكيف ما بنستخدم الreadonly في الكلاس
@Metigator2 жыл бұрын
القصد هنا الكلاس نفسه وليس ال مكونات الداخلية readonly struct {} // ممكنة readonly class {} // غير ممكنة
@muhammadeissa16802 жыл бұрын
@@Metigator تمام وضحت الفكرة 🌹 جزاك الله كل خير ❤️
@mohammedabdelfattah3303 Жыл бұрын
كم أنت عظيم مهندس عصام! لكن اعذرني في طلب بسيط، الصوت يحتاج أن يرتفع قليلا إذا سمحت
@Metigator Жыл бұрын
تم تدارك هذه الحلقات اللي بعد هاي
@mohammedabdelfattah3303 Жыл бұрын
الله يجزيك الجنة حبيبنا @@Metigator
@mahmoudhamed982 жыл бұрын
مممتاز يا باشمهندس. حاليا الStruct أصبح يدعم ال field initialization أعتقد، صحيح؟
@mohamedhakim9276 Жыл бұрын
أيوة وكمان ال default constructor اللى هو بدون parameters مش بيعمل compilation error
@alipro51 Жыл бұрын
ةمشكور واصل تميزك
@ahlamabdaljawwad35832 жыл бұрын
Thank you, Mr. Issam.
@Metigator2 жыл бұрын
You are very welcome
@MohamedAhmed-ji6cn Жыл бұрын
A structure type can't inherit from other class or structure type and it can't be the base of a class. However, a structure type can implement interfaces. You can't declare a finalizer within a structure type. Prior to C# 11, a constructor of a structure type must initialize all instance fields of the type. Prior to C# 10, you can't declare a parameterless constructor. Prior to C# 10, you can't initialize an instance field or property at its declaration.
@MohamedSaeed-sl6ew Жыл бұрын
good ❤
@mohamedaboughazalla2366 Жыл бұрын
حلقة ممتازة هل فى ملف pdf او باور بوينت بيه الslides الموجودة بكل فيديو ؟
@sky-soft-2024 Жыл бұрын
ماشاء الله انا راجعت الدورة من البداية الى هنا وجاري الاكمال ان شاء الله للامانة هذا اقوى محتوى عربي على الإطلاق... بالنسبة للحلقة فيها تفاصيل مهمة ونصائح عن خبرة خاصة عندما ذكرت mutable and immutable وكيف نجعل ال Value type غير قابل للتغيير immutable بس السؤال اللي في راسي هل هناك حاجة وحكمة لعمل ذلك على الهيكل رغم اننا نستطيع ان نجعله mutable؟؟
@Metigator Жыл бұрын
ان لا تسمح ان الاويجكت يتعد ده قوه يحذ ذاته لما الاويكت يكون له بصمه حتكون ضامن انه مش حيتغير وهذا بحذ ذاته بيعطيك ثقة وانت بتتعامل معاه وليه تطبيقات مهمة جدا
@abuaws49223 жыл бұрын
شكرا على الحلقة في عندي سؤال كيف ممكن اعطي قيم لمتغيرات struct وهو مش سامحلي اعمل كونستركتر من غير باراميترز؟
@Metigator3 жыл бұрын
لان المتغبرات بداخل الستركت يتم اعطاءها قيم اوليه بشكل ضمني يعني لو في متغير رقمي هيعطيه قيمة ابتدائية صفر وهكذا..
@IbrahimGaber-de5yk Жыл бұрын
Has the 'Struct' type become mutable in the latest C# versions?
@yousefahmed666 Жыл бұрын
I didn't understand why I will go for sturct and most of porpeirty in class better than struct ? Many thanks for efforts !
@ziadtalaat48 ай бұрын
حاليا Struct بيدعم default constructor و field initialization
@Pro-sj1kh Жыл бұрын
سؤال يا بشمهندس لو سمحت ليه في ال AddBits او غيرها من ال add ليه مش عملناها كده ؟ public void AddBit(long bits) { this.bit += (bits*bitsInBits); } انا عارف كده هنكون غيرنا في ال struct نفسه و كده يعنبر mutable بس فين المشكله لو عملناها كده؟ و سؤال تاني يا بشمهندس في Add(int value,int scale) مش المفروض ال object الجديد يكون كده return new DigitalSize((value*size)+this.bit)? علشان احنا فارضين ان ال struct is immutable بس لما اغير في object ال object نفسه اللي غيرت فيه المفروض مش يتغير لكن ال object الجديد هيحتوي علي التغيير اللي حصل علي ال object الاول
@beshosamir8978 Жыл бұрын
اولا عاش والله علي مجهود حضرتك , حرفيا والله حضرتك بتقدم عظمة ديه كلمة قليلة ثانيا بقي عندي استفسار صغير يعني لو سمحت , دلوقتي انا لما بخلي ال Struct يرجعلي new Object او بمعني تاني , انا كنت واخد object من ال Struct واحنا عارفين انه مينفعش اغير القيم اللي جواه فا زي ما حضرتك عملت خليت ال Struct تعمل Method جواها بترجع New Struct زي ما حضرتك عملت في ال variable اللي اسمه "size" , السؤال بقي القيمة القديمة اللي كانت في ال size اللي هي 60000 ,بعد ما عملت overwrite عليها فا هل هي اتشالت من الميموري ؟ ولا لازم اعملها Destroy قبل ما اعمل overwrite عليها ؟ واسف لو طولت عليك
@Metigator Жыл бұрын
لا يوجد اعادة استخدام قيم متغيرات (زي مبدأ string) مش ضروري تعمل destroy ل struct لأنها value type وبيتم تدميرها تلقائية لما بتصيرخارج المدى.
@beshosamir8978 Жыл бұрын
@@Metigator طب لو بتعامل مع كلاس ؟ يعني لو ناديت كلاس معين وكان بيرجعلي new object old object = new object يعني جوة الاوبجيكت القديم فيه ميثود بترجع اوبيكت جديد , فا هنا القيمة اللي كانت في الاوبجيكت القديم خلاص اتعملها ديستروي لوحدها ؟ ولا عشان هي reference type heap لازم اعملها ديستروي الاول عشان متفضلش في ال
@Metigator Жыл бұрын
@@beshosamir8978 الافضل تتعامل مع Disposable pattern في حالة الكلاس شوف حلقة Stream I/O شارح فيها الموضوع ده
@sky-soft-2024 Жыл бұрын
مشكور جدا وانا احييك تحية وتقدير من القلب على هذا العمل الجميل عندي استفسار بسيط بالنسبة لحجم الهيكل structure اذا اعطيناه فوق حجمة ك انشاء عدد كثير من الحقول field بحجم اكبر من 16 byte هل سيكون الحجم على حجم البيانات بداخله ام سيكون الحد الاقصى 16 بايت
@Metigator Жыл бұрын
حجم البيانات اللي بداخله
@sirinebibicha20242 жыл бұрын
💯💯💯
@shabanelmogy7912 Жыл бұрын
.net 6 struct ممكن يقبل constructor من غير parameter فهل .net 5 مختلف عن .net6 فى النقطة ديه
@mennahassanhassan4028 Жыл бұрын
when we instantiate a struct with new keyword >> does it mean that its values are stored in the heap ?? (I have searched & the answer wasn't specific )
@Metigator Жыл бұрын
I would recommend you watch this episode, the situation will be crystal clear to you after kzbin.info/www/bejne/opeqmWmoYrlgZsk
@mennahassanhassan4028 Жыл бұрын
الله يتقبل منك و يجازيك خير 💞@@Metigator
@mennahassanhassan4028 Жыл бұрын
@@Metigator in mutable and immutable part ==> دلوقتي الستراكت ليه غير قابل للتعديل ؟؟ .. ( الجافا مثلا لو هنسند قيمة جديدة بيحجز مكان جديد و يخلي الاوبجكت يشاور عليه) و فاهمة انه معني غير قابل للتعديل (يعني مش بيتم الكتابة علي نفس المكان في الميموري) .. في سي شارب بيعدل عادي .. يعني في المثال المذكور لو كنت بدل اني اعمل return new DigitalSize(value * scale) ; كان ممكن اعمل تعديل هيقبل عادي و أرجع ذيس return this ; وألاقي النتيجة فعلا اتغيرت ..... فهل حضرتك تقصد ازاي نخلي الستراكت (غير قابل للتعديل) لكن هو قابل عادي ؟؟؟؟
@alaagamal6285 Жыл бұрын
👍👍👍👍👍👍
@Mahmoud_Fahmy2 жыл бұрын
23:15 كيف ننسخ السطور بهذه السرعة؟
@Metigator2 жыл бұрын
CTRL + C => CTRL + V
@ahmedkamel5301 Жыл бұрын
لو عايز تكرر السطور اعمل ctrl + d
@ziyadabdo8146 Жыл бұрын
❤
@alihamza862 жыл бұрын
public DigitalSize AddBit(long bit) => Add(bit, bitsInBits); public DigitalSize Add(long value, long scale) => new DigitalSize(value * scale); If I'm started writing with this way is that mean I understand the lectures that is before the Struct lecture. How can I know that I'm understand lectures Thank you very much for all your time
@Metigator2 жыл бұрын
If I understand you correctly, you can eliminate DRY by doing this.
@alihamza862 жыл бұрын
@@Metigator it's ok now I edited the comment
@joudisoft2 жыл бұрын
سؤال بعد أمرك : عند التعديل على متغير نصي S الموجود اسمه في ال Stack ويشير إلى القيمة Hello في ال Heap لتصبح القيمة الجديدة في ال Heap هي Hello there السؤال : في عملية التعديل هذه هل يبقى المتغير S نفسه ولكن يتم تغيير المكان الذي يشير إليه في الHeap أم يتم تدمير المتغير السابق S مع قيمته ويتم إنشاء متغير جديد S يشير إلى القيمة الجديدة ؟
@Metigator2 жыл бұрын
System.String reference type هو نوع مرجعي سلوك النص (string) هو immutable . مما يعني أن الكائن ، بمجرد إنشائه ، لا يمكن تغييره . كل العمليات التي تتوقع أن تغير الكائن تنشئ نسخة جديدة بدلاً من ذلك.
@joudisoft2 жыл бұрын
@@Metigator تم التركيز على هذه النقطة بالعوة مرة تانية لشرحها وفهمها ال String هو نوع مرجعي ولكن لا يمكن التعديل عليه ( وهذا استثناء ) شكراً للتوضيح
@Mohammed_Almalke2 жыл бұрын
❤❤❤❤❤
@idkkn20073 жыл бұрын
💜💜💜💜💜
@sabriZekkour2 ай бұрын
مهندس عصام كيف احصل على metadata تع ميكروسوفت انا في IDE لي عندي ما فيه ويطلعلي Decompiled لما اعمل F12 ؟ ياريت تنورنا لي حاب اعرف واش تم بنائه خلفي قبل ما انفذ اي كود تحياتي ليك 😍
@mahmoudhammam82628 ай бұрын
💜💜
@AlyMohamed-bs9qj Жыл бұрын
مهندس عصام الان انا عملت constructor بداخل ال struct و موضعتش فية اى parameterless و ما حكالى انو فى اى syntax Error هاد شوى بيعنى مثلا ملحوظة انا شغال Net 6.0
@sky-soft-2024 Жыл бұрын
ايوة لان اصدار اللغة في هذا الاصدار هو C#10.0
@طهاحمدرضوان Жыл бұрын
you can define a no parameter constructor in .NET7
@Metigator Жыл бұрын
ما تنساش وقت الشرح كنت اشرح على اصدار اقدم
@SohiubAshraf Жыл бұрын
السلام عليكم بعد اذنك بشمهندس عصام حضرتك قلت انه يفضل عدم استخدام الاستركت الا لو الداتا بداخله لا تتعدى 16 بايت طب ازاى ال primitive data type مليان بالداتا والميثود الى بتاخد مساحه ؟؟؟ + هل ممكن اقول انى بستعمل الاستركت فى حاله انى معايا كلاس الداتا الى فيه بسيطه ف بحوالها ل استركت ............ قبل ما ابعت السؤال قلت اجرب ابحث والحمدلله لقيت الاجابه ولكن محتاج حضرتك تأكدلى صح ولا غلط بالنسبه للسؤال ف فعلا يوجد دوال فى الاستركت الخاص ب data type such as integer بس الدوال دى ليست جزءًا من بنية int نفسها بل جزء من مكتبة .NET Framework ..... يعني أنه يمكنك استخدام هذه الدوال مع أي بنية، وليس فقط مع بنية الانتجر وده كله بحيث نخلى الاستركت بسيط قدر الامكان تمام كده يا هندسه ؟؟؟
@Metigator Жыл бұрын
لا اعتقد الاستنتاج سليم 16 byte مش قران ولكن لما تتعداها لازم تعمل تحقيق هل ال حتعمل منه كتير متغيرات كثير وهل حتبعته للدوال كثير
@coderdotnet15583 жыл бұрын
♥ ♥ ♥ ♥ ♥ ♥
@aymanhassan2316 Жыл бұрын
هو ازاي يا هندسه بتمسح حرف بحرف كده ؟؟
@Metigator Жыл бұрын
ممكن توضح اي دقيقة
@aymanhassan2316 Жыл бұрын
شكرا يا هندسه انا عرفتها خلاص ❤❤
@ONLY-CODE Жыл бұрын
سمعت الحلقه مرتين وحاسس برده اني مفهمتش كويس اعمل ايه يا بشمهندس
@Metigator Жыл бұрын
ارجع للحلقات اللي قبل كده ولو منفعش لازم تاخد كورس cS50
@ONLY-CODE Жыл бұрын
@@Metigator اعتقد مشكلتي اني اول مره اسمع عن الستركت فمش فاهمه اوي ولكن هسمع الفديو تاني وهكمل السلسله بإذن الله