ما هو الفرق بين الاتي في لغة السي شارب var object dynamic
في لغة البرمجة C#، تتوفر ثلاثة أنواع مختلفة لتعريف المتغيرات: var
، object
، و dynamic
. هذه الأنواع تُستخدم لتخزين البيانات ولها استخدامات مختلفة تعتمد على الحالة المحددة. سنستكشف كل نوع ونوضح الحالات التي يناسب فيها استخدام كل منها.
var
:
var
يُستخدم لتعيين المتغيرات بدون تحديد نوع البيانات بشكل صريح.object
:
object
هو نوع خاص في C# يمكن استخدامه لتخزين أي نوع من البيانات.dynamic
:
dynamic
يُستخدم لتحديد النوع في وقت التشغيل بدلاً من وقت التصميم.حالات الاستخدام:
var
:
object
:
dynamic
:
و إليك أمثلة عملية لكيفية استخدام كل نوع من `var`، `object`، و `dynamic` في لغة البرمجة C#:
### `var`:
```csharp
var number = 10; // تم تحديد نوع المتغير تلقائيًا إلى int
var name = "John"; // تم تحديد نوع المتغير تلقائيًا إلى string
// استخدام `var` مع LINQ
var query = from item in items
where item.Price > 100
select item;
```
### `object`:
```csharp
object obj1 = 100; // تخزين قيمة من نوع int
object obj2 = "Hello"; // تخزين قيمة من نوع string
// تحويل النوع
int intValue = (int)obj1;
string stringValue = (string)obj2;
```
### `dynamic`:
```csharp
dynamic dynamicObj = 10; // تم تحديد النوع في وقت التشغيل إلى int
dynamicObj = "Hello"; // يُمكن تغيير النوع في وقت التشغيل إلى string
// استخدام `dynamic` مع الـ dynamic LINQ
dynamic result = db.Customers
.Where("City == @0 and Orders.Count >= @1", "London", 10)
.OrderBy("CompanyName")
.Select("New(CompanyName as Name, Phone)");
// تحديد السلوك في وقت التشغيل
dynamicObj.SomeMethod(); // يُمكن استدعاء أي طريقة في وقت التشغيل دون فحص النوع
```
هذه الأمثلة توضح كيفية استخدام كل من `var`، `object`، و `dynamic` في C# بشكل عملي حسب حالة الاستخدام المحددة.
في النهاية، يجب اختيار النوع المناسب حسب الحالة المحددة، حيث يُمكن لـ var
تقليل تكرار الأنواع، object
يستخدم لتخزين بيانات متنوعة، و dynamic
يُستخدم لتحديد النوع في وقت التشغيل.