Namespaces والتوجيهات
جزء من قسم Object Oriented Programming في رحلة C# على Coddy — الدرس 2 من 70.
تنظم مساحات الأسماء (Namespaces) الكود الخاص بك وتمنع تعارض التسمية. فهي تقوم بتجميع الفئات (classes) ذات الصلة معاً مثلما تنظم المجلدات الملفات.
إنشاء كلاس داخل مساحة اسم (namespace)
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}استخدم توجيه using للوصول إلى الفئات من مساحة اسم أخرى
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}الناتج:
Aliceبدون توجيه using، يجب عليك استخدام الاسم المؤهل بالكامل
MyApp.Models.User user = new MyApp.Models.User("Bob");يسمح لك التوجيه using بالإشارة إلى الأنواع في مساحة اسم (namespace) دون كتابة مسار مساحة الاسم الكامل في كل مرة. تعد System مساحة اسم شائعة تحتوي على فئات أساسية مثل Console.
التحدي
متوسطلديك فئة User في مساحة الأسماء MyApp.Models. أضف توجيه using الصحيح في Program.cs لاستخدام فئة User بدون الاسم المؤهل بالكامل.
ورقة مرجعية
تنظم مساحات الأسماء (Namespaces) الكود وتمنع تضارب التسميات من خلال تجميع الفئات (classes) ذات الصلة معاً.
إنشاء فئة داخل مساحة اسم:
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}استخدم توجيه using للوصول إلى الفئات من مساحة اسم أخرى:
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}بدون توجيه using، استخدم الاسم المؤهل بالكامل:
MyApp.Models.User user = new MyApp.Models.User("Bob");تحتوي مساحة الاسم System على فئات أساسية مثل Console.
جرّب بنفسك
using System;
// TODO: أضف توجيه using لـ MyApp.Models
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// TODO: أنشئ كائن User باستخدام userName
// TODO: اطبع "User created: " متبوعاً بـ Name الخاص بالمستخدم
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1أساسيات OOP
الملفات الخارجيةNamespaces والتوجيهاتمقدمة في Classes و Objectsالكلمة المفتاحية 'this'Methods والمعاملاتFields مقابل PropertiesConstructorsObject Initializersمراجعة - آلة حاسبة بسيطة4الوراثة
صيغة الوراثة الأساسية (:)الكلمة المفتاحية 'base'الكلمات المفتاحية Virtual و Overrideالأصناف المختومة (Sealed Classes)الفئة الأساسية 'object'مراجعة - هيكلية الموظفين7ميزات متقدمة
تحميل العوامل (Operator Overloading)المفهرسات (Indexers (this[]))إعادة تعريف ()ToStringدوال التوسعة (Extension Methods)ملخص - Custom List2الخصائص والأعضاء الساكنة (Static Members)
الخصائص المطبقة تلقائيًا (Auto-Implemented Properties)خصائص القراءة فقط والكتابة فقطالحقول والدوال الساكنة (Static)الفئات الساكنة (Static Classes)الأعضاء ذات البنية التعبيرية (Expression-Bodied Members)5تعدد الأشكال والواجهات (Polymorphism & Interfaces)
تعدد الأشكال: وقت التجميع مقابل وقت التشغيلالواجهة مقابل الفئة المجردة (Abstract Class)الواجهات المتعددةالواجهات الصريحةUpcasting و Downcastingملخص - حاسبة الأشكال8مفاهيم البرمجة كائنية التوجه (OOP) المتقدمة
التركيب بدلاً من الوراثةالـ Generics (الأصناف والدوال)الـ Delegates والأحداثالـ Attributes والـ Reflectionواجهة IDisposable وجملة usingأساسيات Dependency Injection