مشاركة عبر


تطبيق السمات

استخدم العملية التالية لتطبيق سمة علي عنصر في التعليمات البرمجية الخاصة بك.

  1. قم بتعريف سمة جديدة أو استخدام واحدة موجودة مسبقاً بواسطة استيراد مساحة الاسم من .NET Framework.

  2. قم بتطبيق السمة علي عنصر التعليمات البرمجية عن طريق وضعها مباشرة قبل العنصر.

    تحتوي كل لغة علي سمات بناء الجملة الخاصة بها. في C++ و C# ، تكون السمة محاطة بأقواس مربعة ويتم فصلها عن العنصر بواسطة حرف مسافة، التي يمكن أن تتضمن فاصل أسطر. في Visual Basic، تكون السمة محاطة بأقواس زاوية كما يجب أن تكون على نفس السطر المنطقي; يمكن استخدام حرف متابعة السطر إذا كنت ترغب بفاصل أسطر. في J#، يتم إرفاق السمة باستخدام بناء جملة تعليق خاص.

  3. تحديد المعلمات الموضعية و المعلمات المسماة للسمة.

    المعلمات الموضعية مطلوبة ومن ثم يجب أن تسبق المعلمات المسماة; فهي تقابل المعلمات لأحد المُنشئات الخاصة بالسمة. المعلمات المسماة اختيارية وتطابق خصائص القراءة/الكتابة للسمة. في C++ C# و J# ، قم بتحديد name = value لكل معلمة اختيارية، حيث يكون name هو اسم الخاصية. في Visual Basic، حدد name: = value.

يتم إرسال السمة في بيانات التعريف عند ترجمة التعليمات البرمجية الخاصة بك وعندما تكون متوفرة في وقت تشغيل اللغة العامة و أي أداة مخصصة أو تطبيق من خلال خدمات انعكاس وقت التشغيل.

بواسطة الاصطلاح، فكافة أسماء السمات تنتهي بالسمة. ومع ذلك، فهناك عدة لغات تستهدف وقت التشغيل مثل Visual Basic أو C#، لا تتطلب تحديد الاسم الكامل لسمة. على سبيل المثال، إذا كنت تريد تهيئة System.ObsoleteAttribute، فستحتاج فقط للإشارة إليه كـ Obsolete.

تطبيق السمة إلى أسلوب

يوضح مثال التعليمة البرمجية التالي كيفية تعريف System.ObsoleteAttribute، والذي يقوم بوضع علامة علي التعليمات البرمجية علي أنها قديمة. يتم تمرير السلسلة "Will be removed in next version" إلى السمة. تؤدي هذه السمة إلي تحذير من المحول برمجي والذي يعرض السلسلة التي تم تمريرها عندما يتم استدعاء التعليمات البرمجية التي تصفها السمة.

using System;
public class Example
{
    // Specify attributes between square brackets in C#‎.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version.")]
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}
class Test
{
    static void Main()
    {
        // This generates a compile-time warning.
        int i = Example.Add(2, 2);
    }
}
using namespace System;
public ref class Example
{
public:
    // Specify attributes between square brackets in C++‎.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version ")]
    static int Add(int a, int b)
    {
        return (a + b);
    }
};
void main()
{
    // This generates a compile-time warning.
    int i = Example::Add(2, 2);
    return;
}
Imports System 
Public Class Example
    ' Specify attributes between angle brackets in Visual Basic,
    ' and keep them on the same logical line.
    ' This attribute is applied only to the Add method.
    <Obsolete("Will be removed in next version ")> _
    Public Shared Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
        Return a + b
    End Function
End Class
Module Test
    Sub Main()
        ' This generates a compile-time warning.
        Dim i As Integer = Example.Add(2, 2)
    End Sub
End Module
import System.*;
public class Example
{
    // Specify attributes with comment syntax in J#.
    // This attribute is applied only to the Add method.
    /** @attribute Obsolete("Will be removed in next version") */
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}

class Test
{ 
    public static void main()
    {
        // This generates a compile-time warning.
        int MyInt = Example.Add(2,2); 
    }
}

تطبيق السمات علي مستوى التجميع

إذا كنت تريد تطبيق سمة علي مستوى التجميع، فاستخدم الكلمة الأساسية Assembly. توضح التعليمة البرمجية التالية AssemblyNameAttribute المطبّق علي مستوى التجميع.

using System.Reflection;
[assembly:AssemblyName("MyAssembly")]
using namespace System::Reflection;
[assembly:AssemblyName("MyAssembly")]
Imports System.Reflection
<Assembly:AssemblyName("MyAssembly")> 
import System.Reflection.*;
/** @assembly AssemblyName("MyAssembly") */

عندما يتم تطبيق تلك السمة، فسيتم وضع السلسلة "MyAssembly" في بيان التجميع الموجود في جزء بيانات التعريف من الملف. يمكنك عرض السمة باستخدام إما MSIL Disassembler (Ildasm.exe) أو عن طريق إنشاء برنامج مخصص لاسترداد السمة.

راجع أيضًا:

المرجع

دعم Visual Basic و Visual C#‎

المبادئ

توسيع بيانات التعريف باستخدام السمات

استرداد المعلومات المخزنة في سمات

موارد أخرى

سببًا مفاهيم البرمجة