تخطَّ إلى المحتوى

using

تصريح using وجملة using using

using له استخدامان مختلفان: توجيه using لاستيراد namespace في أعلى الملف، وجملة/تصريح using للتخلّص التلقائي من كائن يطبّق IDisposable.

التوجيه `using System;` في أعلى الملف يسمح باستخدام أنواع الـ namespace بلا كتابة اسمه كاملًا كل مرة.

جملة using مختلفة تمامًا: تضمن استدعاء Dispose() على كائن (ملف، اتصال شبكة، قاعدة بيانات) تلقائيًا عند الخروج من الكتلة، حتى لو حدث استثناء. منذ C# 8 توجد صيغة أقصر بلا أقواس تسمّى using declaration — تتخلّص من الكائن عند نهاية النطاق المحيط.

الصياغة

using Namespace;               // توجيه استيراد
using (var x = ...) { ... }    // جملة using
using var x = ...;             // تصريح using (C# 8+)

📄 مثال

using System.IO;

// جملة using — تتخلّص من الملف عند نهاية القوسين
using (StreamReader reader = new StreamReader("data.txt"))
{
    Console.WriteLine(reader.ReadLine());
}

// تصريح using — تتخلّص عند نهاية الدالة
void ReadFile()
{
    using var reader = new StreamReader("data.txt");
    Console.WriteLine(reader.ReadLine());
}

أهم النقاط

العنصرالوظيفة
using directiveاستيراد أنواع namespace في أعلى الملف
using statementusing (...) { } — تخلّص محدّد بنطاق الأقواس
using declarationusing var x = ...; — تخلّص عند نهاية النطاق المحيط (C# 8+)

💡 نصائح عملية

  • استخدم using مع أي كائن يطبّق IDisposable (ملفات، اتصالات، streams) بدل استدعاء Dispose() يدويًا

⚠️ أخطاء شائعة

  • فتح ملف أو اتصال بلا using ونسيان Dispose() — يسرّب موارد النظام

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CSHARP الكامل بالعربي.