الغير آمن ( مرجع C# )
الكلمة الأساسية unsafe تتدل على سياق غير آمن، المطلوب لأي عملية تشمل المؤشرات. لمزيد من المعلومات، راجع التعليمات البرمجية الغير آمنة والمؤشرات (دليل البرمجة لـ #C).
يمكنك استخدام المعدّل unsafe في تعريف نوع أو عضو. ولذلك يعتبر مدى النص بأكمله من نوع أو عضو في سياق غير آمن. على سبيل المثال, الأسلوب التالي يعرف المعدّل unsafe:
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}
نطاق السياق الغير آمن يمتد من قائمة المعلمة لنهاية الأسلوب، حيث يمكن أيضا استخدام المؤشرات في قائمة المعلمة:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
يمكنك أيضاً استخدام الكتل الغير آمنة لتمكين استخدام التعليمات البرمجية الغير آمنة داخل هذه الكتلة. فعلى سبيل المثال:
unsafe
{
// Unsafe context: can use pointers here.
}
لترجمة تعليمات برمجية غير آمنة , يجب عليك تحديد خيار المحول البرمجي / غير آمنة التعليمات البرمجية الغير آمنة لا يمكن التحقق منها بوقت تشغيل اللغة العامة.
مثال
// compile with: /unsafe
class UnsafeTest
{
// Unsafe method: takes pointer to int:
unsafe static void SquarePtrParam(int* p)
{
*p *= *p;
}
unsafe static void Main()
{
int i = 5;
// Unsafe method: uses address-of operator (&):
SquarePtrParam(&i);
Console.WriteLine(i);
}
}
// Output: 25
مواصفات لغة #C
لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.
راجع أيضًا:
المرجع
التعليمات البرمجية الغير آمنة والمؤشرات (دليل البرمجة لـ #C)
ثابت حجم المخازن المؤقتة (البرمجة C# إرشادات)