في ناس كتير عم تقول حسونه مو كويس، انا كشخص ليه نظرة بالمعلم لدي رأي اخر : حسونه يتمتع بموهبه شرح قويه جدا. انا بدور على كل القنوات وبرجع بالاخير لعنده لافهم بشكل مبسط. وهذا الدرس دليل عل خبرتو بالتدريس
جزاك الله خير الجزاء في الدنيا والآخرة..و زادك الله علما و نفع بك .. من خلال تجربتي في متابعة اغلب اليتيوبرز استطيع ان اقول بأنك أفضل يتيوبر شرح البرمجة بدون منازع ما شاء الله
طب انتا قولت شويه كلام نظري وعرفنا ايه هوا ال struct وعرفنا انه مش بي إنهرت من كلاس وبي إنهرت من انترفيس لكن انتا جيت ع اهم حاجه مقولتهاش وهيا امتي استخدم الكلاس ومستخدمش الاستركت وامتي استخدم الاستركت ومستخدمش الكلاس!!!!!!!!!
تعتبر البنيات (structs) في C# مفيدة في السيناريوهات التي تحتاج فيها إلى تخزين بيانات صغيرة، خفيفة الوزن، ومنطق بسيط، وتريد تحسين الأداء بتجنب التخصيص في الذاكرة الديناميكية (heap). إليك بعض الأمثلة العملية التي توضح متى يكون استخدام البنيات مناسبًا: ### 1. **تمثيل النقاط أو الإحداثيات (Coordinates):** عندما تحتاج إلى تمثيل نقطة في مساحة ثنائية الأبعاد أو ثلاثية الأبعاد، مثل نقطة على الشاشة أو في لعبة. ```csharp public struct Point { public int X { get; set; } public int Y { get; set; } public Point(int x, int y) { X = x; Y = y; } } // الاستخدام Point p1 = new Point(10, 20); Console.WriteLine($"Point: ({p1.X}, {p1.Y})"); ``` ### 2. **تمثيل الألوان (Colors):** عندما تحتاج إلى تمثيل لون باستخدام مكونات RGB. ```csharp public struct Color { public byte Red { get; set; } public byte Green { get; set; } public byte Blue { get; set; } public Color(byte red, byte green, byte blue) { Red = red; Green = green; Blue = blue; } } // الاستخدام Color color = new Color(255, 0, 0); // الأحمر Console.WriteLine($"Color: (R:{color.Red}, G:{color.Green}, B:{color.Blue})"); ``` ### 3. **تمثيل الأبعاد (Dimensions):** عندما تحتاج إلى تمثيل عرض وارتفاع كائن، مثل حجم نافذة أو صورة. ```csharp public struct Size { public int Width { get; set; } public int Height { get; set; } public Size(int width, int height) { Width = width; Height = height; } } // الاستخدام Size size = new Size(1920, 1080); Console.WriteLine($"Size: {size.Width}x{size.Height}"); ``` ### 4. **تمثيل النطاقات الزمنية (Time spans):** عندما تحتاج إلى تمثيل فترة زمنية محددة (مثل ساعة ودقيقة وثانية). ```csharp public struct TimeSpan { public int Hours { get; set; } public int Minutes { get; set; } public int Seconds { get; set; } public TimeSpan(int hours, int minutes, int seconds) { Hours = hours; Minutes = minutes; Seconds = seconds; } } // الاستخدام TimeSpan timeSpan = new TimeSpan(1, 30, 0); // 1 ساعة و 30 دقيقة Console.WriteLine($"Time Span: {timeSpan.Hours}h {timeSpan.Minutes}m {timeSpan.Seconds}s"); ``` ### متى تختار استخدام البنيات (structs)؟ - **الحجم الصغير للبيانات**: عندما تكون البيانات صغيرة ولا تتطلب مساحة كبيرة. - **عدم الحاجة إلى الوراثة**: عندما لا تحتاج إلى استخدام الوراثة. البنيات لا تدعم الوراثة ولكن يمكنها تطبيق الواجهات. - **الأداء**: عندما يكون الأداء مهمًا وتريد تجنب التخصيص في الذاكرة الديناميكية (heap) والنسخ المتكررة. - **الكيانات البسيطة**: عندما تكون الكيانات بسيطة، وتحتوي على عدد قليل من الحقول، وليس لها منطق معقد. استخدام البنيات في هذه السيناريوهات يمكن أن يوفر تحسينات في الأداء وإدارة الذاكرة مقارنة باستخدام الفئات (classes) في C#.
السلام عليكم استاذ ، اذا كانت عندي قاعدة بيانات فيها اسماء وحابب اضيف اسماء جديدة عند الاضافه يضيف اذا كان الاسم غير موجود في قاعدة البيانات يضيف واذا موجود يظهر لي رساله تقول هذا الاسم موجود في القاعدة ، ياريت تشرح النه هالشي هذا لان تعبت كثير وانا ابحث وما لقيت حل لهذا الشي ، ملخص العبارة عند اضافه عنصر الى قاعدة البيانات وكان هذا العنصر موجود يخبرني انو موجود واذا لا يضيف الى قاعدة البيانات والسلام
@@LastMomentMan هههههههههههههههههه رح اسأل هناك. ان شاء الله اذا وصلت هناك وعرفت الجواب بعلمك طبعا باقيلي الفورم لاني قفزت عنه يعني شهرين ثلاثه وبرد عليك
في ناس كتير عم تقول حسونه مو كويس، انا كشخص ليه نظرة بالمعلم لدي رأي اخر : حسونه يتمتع بموهبه شرح قويه جدا. انا بدور على كل القنوات وبرجع بالاخير لعنده لافهم بشكل مبسط. وهذا الدرس دليل عل خبرتو بالتدريس
والله معك حق واتفق معاك هنا 6:55 لانني فهمت struct
لو شرحته في كورس الاساسيات اكيد لن افهمه ويكون صعب
جزاك الله خير الجزاء في الدنيا والآخرة..و زادك الله علما و نفع بك ..
من خلال تجربتي في متابعة اغلب اليتيوبرز استطيع ان اقول بأنك أفضل يتيوبر شرح البرمجة بدون منازع ما شاء الله
ربنا يجعلة في ميزان حسناتك يارب وربنا يجزيهم كل خير اللى بيدعموا القناة وبيدعموا الكورس
جزاك الله كل خير ...❤❤❤❤
بارك الله فيك استاذ احمد حسونه وجزاك الله خيرا والشكر موصول للاستاذ الفاضل المهندس طارق على الدعم الكبير
شرح ممتاز
جزاك الله خيرا وربنا يجعله فى ميزان حسناتك
جزاك الله خير الجزاء في الدنيا والآخرة..و زادك الله علما و نفع بك
بارك الله فيك استاذ احمد حسونه وجزاك الله خيرا
واصل.. شرح رائع و مبسط
جزاك الله خيرا
نتمنى كورس اليونيتي بنفس الشرح المبسط ان امكن و شكرا
مبدع يا استاذ حسونة
جزاك الله خيرا جزيلا لما تقدمه لشباب الامة العربية
ربنا يجعله فى ميزان حسناتك
رحمة الله والديك وعاشت ايدك
الله يعطيك الف عافية
جزاك الله خير
احسنت ❤
Thank You
طب انتا قولت شويه كلام نظري وعرفنا ايه هوا ال struct وعرفنا انه مش بي إنهرت من كلاس وبي إنهرت من انترفيس
لكن انتا جيت ع اهم حاجه مقولتهاش وهيا
امتي استخدم الكلاس ومستخدمش الاستركت
وامتي استخدم الاستركت ومستخدمش الكلاس!!!!!!!!!
تعتبر البنيات (structs) في C# مفيدة في السيناريوهات التي تحتاج فيها إلى تخزين بيانات صغيرة، خفيفة الوزن، ومنطق بسيط، وتريد تحسين الأداء بتجنب التخصيص في الذاكرة الديناميكية (heap). إليك بعض الأمثلة العملية التي توضح متى يكون استخدام البنيات مناسبًا:
### 1. **تمثيل النقاط أو الإحداثيات (Coordinates):**
عندما تحتاج إلى تمثيل نقطة في مساحة ثنائية الأبعاد أو ثلاثية الأبعاد، مثل نقطة على الشاشة أو في لعبة.
```csharp
public struct Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
}
// الاستخدام
Point p1 = new Point(10, 20);
Console.WriteLine($"Point: ({p1.X}, {p1.Y})");
```
### 2. **تمثيل الألوان (Colors):**
عندما تحتاج إلى تمثيل لون باستخدام مكونات RGB.
```csharp
public struct Color
{
public byte Red { get; set; }
public byte Green { get; set; }
public byte Blue { get; set; }
public Color(byte red, byte green, byte blue)
{
Red = red;
Green = green;
Blue = blue;
}
}
// الاستخدام
Color color = new Color(255, 0, 0); // الأحمر
Console.WriteLine($"Color: (R:{color.Red}, G:{color.Green}, B:{color.Blue})");
```
### 3. **تمثيل الأبعاد (Dimensions):**
عندما تحتاج إلى تمثيل عرض وارتفاع كائن، مثل حجم نافذة أو صورة.
```csharp
public struct Size
{
public int Width { get; set; }
public int Height { get; set; }
public Size(int width, int height)
{
Width = width;
Height = height;
}
}
// الاستخدام
Size size = new Size(1920, 1080);
Console.WriteLine($"Size: {size.Width}x{size.Height}");
```
### 4. **تمثيل النطاقات الزمنية (Time spans):**
عندما تحتاج إلى تمثيل فترة زمنية محددة (مثل ساعة ودقيقة وثانية).
```csharp
public struct TimeSpan
{
public int Hours { get; set; }
public int Minutes { get; set; }
public int Seconds { get; set; }
public TimeSpan(int hours, int minutes, int seconds)
{
Hours = hours;
Minutes = minutes;
Seconds = seconds;
}
}
// الاستخدام
TimeSpan timeSpan = new TimeSpan(1, 30, 0); // 1 ساعة و 30 دقيقة
Console.WriteLine($"Time Span: {timeSpan.Hours}h {timeSpan.Minutes}m {timeSpan.Seconds}s");
```
### متى تختار استخدام البنيات (structs)؟
- **الحجم الصغير للبيانات**: عندما تكون البيانات صغيرة ولا تتطلب مساحة كبيرة.
- **عدم الحاجة إلى الوراثة**: عندما لا تحتاج إلى استخدام الوراثة. البنيات لا تدعم الوراثة ولكن يمكنها تطبيق الواجهات.
- **الأداء**: عندما يكون الأداء مهمًا وتريد تجنب التخصيص في الذاكرة الديناميكية (heap) والنسخ المتكررة.
- **الكيانات البسيطة**: عندما تكون الكيانات بسيطة، وتحتوي على عدد قليل من الحقول، وليس لها منطق معقد.
استخدام البنيات في هذه السيناريوهات يمكن أن يوفر تحسينات في الأداء وإدارة الذاكرة مقارنة باستخدام الفئات (classes) في C#.
السلام عليكم استاذ ،
اذا كانت عندي قاعدة بيانات فيها اسماء وحابب اضيف اسماء جديدة عند الاضافه يضيف اذا كان الاسم غير موجود في قاعدة البيانات يضيف واذا موجود يظهر لي رساله تقول هذا الاسم موجود في القاعدة ، ياريت تشرح النه هالشي هذا لان تعبت كثير وانا ابحث وما لقيت حل لهذا الشي ، ملخص العبارة عند اضافه عنصر الى قاعدة البيانات وكان هذا العنصر موجود يخبرني انو موجود واذا لا يضيف الى قاعدة البيانات والسلام
@@LastMomentMan هههههههههههههههههه رح اسأل هناك. ان شاء الله اذا وصلت هناك وعرفت الجواب بعلمك
طبعا باقيلي الفورم لاني قفزت عنه يعني شهرين ثلاثه وبرد عليك
@@KsaKsa-ll5mg عدا سنه و ما رديت 😂😂
public readonly string message = "thank you Hassouna";
Console.Write(message);
جزاك الله خيرا
جزاكم الله خيرا