Latest web development tutorials

C # مشغلي

المشغل هو رمز لنقول للمترجم لإجراء عمليات حسابية أو منطقية محددة. C # ديها ثروة من المشغلين في البناء، على النحو التالي:

  • العوامل الحسابية
  • مشغلي العلائقية
  • مشغلي منطقية
  • أحادي المعامل مشغلي
  • عوامل التعيين
  • مشغلي المتنوعة

هذا البرنامج التعليمي سوف يشرح كل من العوامل الحسابية، العلائقية، العوامل المنطقية، ومشغلي المختصة بالبت، عامل التعيين وشركات أخرى.

العوامل الحسابية

ويبين الجدول التالي C # دعم جميع المشغلين الحسابية. يفترضقيمة 10 متغير، المتغير Bهو 20، ثم:

运算符描述实例
+把两个操作数相加 A + B 将得到 30
-从第一个操作数中减去第二个操作数 A - B 将得到 -10
*把两个操作数相乘 A * B 将得到 200
/分子除以分母 B / A 将得到 2
%取模运算符,整除后的余数 B % A 将得到 0
++自增运算符,整数值增加 1 A++ 将得到 11
--自减运算符,整数值减少 1 A-- 将得到 9

أمثلة

النظر في الأمثلة التالية لمعرفة C # جميع العوامل الحسابية المتاحة:

باستخدام نظام.

OperatorsAppl مساحة
{
    برنامج الدرجة
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            الباحث و= 21؛
            الباحث ب = 10؛
            الباحث ج.

            ج = أ + ب.
            Console.WriteLine ( "1 الخط - ج هي {0}"، ج)؛
            ج = أ - ب.
            Console.WriteLine ( "2 خط - ج هي {0}"، ج)؛
            ج = أ * ب.
            Console.WriteLine ( "3 الخط - ج هي {0}"، ج)؛
            ج = أ / ب.
            Console.WriteLine ( "4 الخط - ج هي {0}"، ج)؛
            ج = أ ب٪.
            Console.WriteLine ( "الخط 5 - ج هي {0}"، ج)؛

            قامت // ++ لعملية الزيادة الأولى بها مهمة ج = ++ ل.
            Console.WriteLine ( "6 خط - ج هي {0}"، ج)؛

            // في هذه الحالة قيمة 22
            // --a الطرح النفس الأول عن طريق التنازل ج = --a.
            Console.WriteLine ( "7 الخط - ج هي {0}"، ج)؛
            Console.ReadLine ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

1 الخط - قيمة ج هو 31
2 خط - قيمة ج هو 11
3 الخط - هي قيمة ج 210
4 الخط - قيمة ج هو 2
السطر 5 - قيمة ج هو 1
6 خط - قيمة ج هو 22
7 الخط - قيمة ج هو 21
  • ج = أ +: احالة الأول إلى c، ومن ثم على عامل زيادة على الذات.
  • ج = ++ ل: أولا عامل زيادة على الذات، ومن ثم تعيينه لج.
  • ج = a--: احالة الأول إلى c، ومن ثم على الطرح الذاتي.
  • ج = --a: أولا-الطرح النفس، ثم تعيينه لج.
using System;

namespace OperatorsAppl
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 1;
            int b;

            // a++ 先赋值再进行自增运算
            b = a++;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // ++a 先进行自增运算再赋值
            a = 1; // 重新初始化 a
            b = ++a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // a-- 先赋值再进行自减运算
            a = 1;  // 重新初始化 a
            b= a--;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // --a 先进行自减运算再赋值
            a = 1;  // 重新初始化 a
            b= --a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();
        }
    }
}

تشغيل المثال »

البرنامج المذكور أعلاه، والناتج هو:

a = 2
b = 1
a = 2
b = 2
a = 0
b = 1
a = 0
b = 0

مشغلي العلائقية

ويبين الجدول التالي C # دعم جميع العوامل العلائقية. يفترضقيمة 10 متغير، المتغير Bهو 20، ثم:

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

أمثلة

النظر في الأمثلة التالية لمعرفة C # جميع العوامل العلائقية المتاحة:

باستخدام نظام.

برنامج الدرجة
{
  ساكنة باطلة الرئيسية (سلسلة [] وسائط)
  {
      الباحث و= 21؛
      الباحث ب = 10؛
      
      إذا (أ == ب)
      {
          Console.WriteLine ( "الخط 1 - ويساوي ب")؛
      }
      آخر
      {
          Console.WriteLine ( "الخط 1 - للا يساوي ب")؛
      }
      إذا (أ <ب)
      {
          Console.WriteLine ( "الخط 2 - أقل من ب")؛
      }
      آخر
      {
          Console.WriteLine ( "الخط 2 - وليس أقل من ب")؛
      }
      إذا (أ> ب)
      {
          Console.WriteLine ( "الخط 3 - من هو أكبر من ب")؛
      }
      آخر
      {
          Console.WriteLine ( "الخط 3 - ليست أكبر من ب")؛
      }
      / * تغيير قيمة أ و ب * /
      و= 5؛
      ب = 20؛
      إذا (أ <= ب)
      {
         Console.WriteLine ( "الخط 4 - أقل من أو يساوي ب")؛
      }
      إذا (ب> = أ)
      {
         Console.WriteLine ( "الخط 5 - ب أكبر من أو تساوي")؛
      }
  }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

خط 1 - ليست على قدم المساواة إلى b
خط 2 - وليس أقل من ب
السطر 3 - من هو أكبر من ب
خط 4 - على أقل من أو يساوي ب
السطر 5 - ب أكبر من أو تساوي

مشغلي منطقية

ويبين الجدول التالي C # دعم جميع العوامل المنطقية. لنفترض أن قيمةمنطقية متغير صحيح، بالمتغير هو قيمة منطقية كاذبة، ثم:

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

أمثلة

النظر في الأمثلة التالية لمعرفة C # جميع العوامل المنطقية المتاحة:

باستخدام نظام.

OperatorsAppl مساحة
{
    برنامج الدرجة
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            منطقي ل= صحيح.
            منطقي ب = صحيح.
           
            إذا (أ && ب)
            {
               Console.WriteLine ( "الخط 1 - الشرط صحيحا")؛
            }
            إذا (أ || ب)
            {
                Console.WriteLine ( "الخط 2 - الشرط صحيحا")؛
            }
            / * تغيير قيمة أ و ب * /
            و= كاذبة؛
            ب = صحيح.
            إذا (أ && ب)
            {
                Console.WriteLine ( "الخط 3 - الشرط صحيحا")؛
            }
            آخر
            {
                Console.WriteLine ( "الخط 3 - في حالة ليست صحيحة")؛
            }
            إذا (! (أ && ب))
            {
                Console.WriteLine ( "الخط 4 - الشرط صحيحا")؛
            }
            Console.ReadLine ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

خط 1 - الشرط هو خط صحيح 2 - في حالة وخط صحيح 3 - وليس شرطا خط صحيح 4 - الشرط صحيحا 

أحادي المعامل مشغلي

مشغلي المختصة بالبت بناء على الشيء، والشيء عن عملية قليلا. و، | و^ جدول الحقيقة هي كما يلي:

pqp & qp | qp ^ q
00000
01011
11110
10011

افترض إذا A = 60، و B = 13، والآن، في شكل ثنائي، هي كما يلي:

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A | B = 0011 1101

و^ B = 0011 0001

~ A = 1100 0011

يسرد الجدول التالي C # مشغلي دعم أحادي المعامل. لنفترض أن المتغير(أ) هو 60، وقيمة المتغير B13، ثم:

运算符描述实例
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~二进制补码运算符是一元运算符,具有"翻转"位效果。(~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111

أمثلة

النظر في الأمثلة التالية لمعرفة C #، جميع المشغلين بت المتاحة:

باستخدام نظام.
OperatorsAppl مساحة
{
    برنامج الدرجة
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            الباحث و= 60؛ / * 60 = 0011 1100 * /  
            الباحث ب = 13؛ / * 13 = 0000 1101 * /
            الباحث ج = 0؛           

             ج = أ و ب؛ / * 12 = 0000 1100 * / 
             Console.WriteLine ( "1 الخط - ج هي {0}"، ج)؛

             ج = أ | ب؛ / * 61 = 0011 1101 * /
             Console.WriteLine ( "2 خط - ج هي {0}"، ج)؛

             ج = أ ^ ب؛ / * 49 = 0011 0001 * /
             Console.WriteLine ( "3 الخط - ج هي {0}"، ج)؛

             ج = ~ و؛ / * - 61 = 1100 0011 * /
             Console.WriteLine ( "4 الخط - ج هي {0}"، ج)؛

             ج = أ << 2؛ / * 240 = 1111 0000 * /
             Console.WriteLine ( "الخط 5 - ج هي {0}"، ج)؛

             ج = أ >> 2؛ / * 15 = 0000 1111 * /
             Console.WriteLine ( "6 خط - ج هي {0}"، ج)؛
            Console.ReadLine ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

1 الخط - قيمة ج هو 12
2 خط - قيمة ج هو 61
3 الخط - قيمة ج هو 49
4 الخط - قيمة ج هو -61
السطر 5 - قيمة ج 240
6 خط - قيمة ج هو 15

عوامل التعيين

يسرد الجدول التالي C # تدعم عامل التعيين:

运算符描述实例
=简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<=左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>=右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符 C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|=按位或且赋值运算符 C |= 2 等同于 C = C | 2

أمثلة

النظر في الأمثلة التالية لمعرفة C # في كل عوامل التعيين المتاحة:

باستخدام نظام.

OperatorsAppl مساحة
{
    برنامج الدرجة
    {
        ساكنة باطلة الرئيسية (سلسلة [] وسائط)
        {
            الباحث و= 21؛
            الباحث ج.

            ج = أ.
            Console.WriteLine ( "الخط 1 - قيمة = ج = {0}"، ج)؛

            ج + = أ.
            Console.WriteLine ( "الخط 2 - قيمة + = ج = {0}"، ج)؛

            ج - = أ.
            Console.WriteLine ( "الخط 3 - - قيمة = ج = {0}"، ج)؛

            ج * = أ.
            Console.WriteLine ( "الخط 4 - قيمة * = ج = {0}"، ج)؛

            ج / = أ.
            Console.WriteLine ( "الخط 5 - قيمة / = ج = {0}"، ج)؛

            ج = 200؛
            ج٪ = أ.
            Console.WriteLine ( "الخط 6 - قيمة٪ = ج = {0}"، ج)؛

            ج << = 2؛
            Console.WriteLine ( "الخط 7 - << = قيمة ج = {0}"، ج)؛

            ج >> = 2؛
            Console.WriteLine ( "الخط 8 - >> = قيمة ج = {0}"، ج)؛

            ج & = 2؛
            Console.WriteLine ( "الخط 9 - و= قيمة ج = {0}"، ج)؛

            ج ^ = 2؛
            Console.WriteLine ( "الخط 10 - قيمة ^ ​​= ج = {0}"، ج)؛

            ج | = 2؛
            Console.WriteLine ( "الخط 11 - | = قيمة ج = {0}"، ج)؛
            Console.ReadLine ()؛
        }
    }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

خط 1 - = ج = قيمة 21
خط 2 - + = قيمة c = 42
3 الخط - - = قيمة ج = 21
4 الخط - * = قيمة c = 441
السطر 5 - / = ج = قيمة 21
6 خط -٪ = قيمة ج = 11
7 الخط - << = قيمة c = 44
الخط 8 - قيمة >> = ج = 11
9 الخط - و= قيمة ج = 2
خط 10 - ^ = ج = 0 القيمة
السطر 11 - | = ج 2 = قيمة

مشغلي المتنوعة

يسرد الجدول التالي C # دعم بعض الشركات الهامة الأخرى، بما في ذلكsizeof، تشير typeofو:.

مشغلي وصف أمثلة sizeof () العودة نوع البيانات الحجم. sizeof (الباحث)، سيعود 4. تشير typeof () إرجاع نوع فئة. تشير typeof (StreamReader)؛ و العودة عنوان متغير. & A، وسوف تحصل على العنوان الفعلي للمتغير. * مؤشر متغير. * A؛ سوف نشير إلى متغير. ؟: التعبير الشرطي ؟ وإذا كان الشرط صحيحا، أو X: Y خلاف ذلك غير يحدد ما إذا كان كائن من نوع معين. إذا (فورد سيارة) // تحقق ما إذا كان الكائن فئة فورد للسيارات. كما المدلى بها، حتى إذا فشل التحويل انها لن رمي استثناء. وجوه الكائنات = StringReader الجديد ( "مرحبا")؛
StringReader ص = الكائنات كما StringReader.

أمثلة

باستخدام نظام.

OperatorsAppl مساحة
{
    
   برنامج الدرجة
   {
      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         
         / * Sizeof المثال المشغل * /
         Console.WriteLine ( "حجم كثافة العمليات هو {0}"، sizeof (دولي))؛
         Console.WriteLine ( "حجم القصير هو {0}"، sizeof (قصيرة))؛
         Console.WriteLine ( "يتضاعف حجم {0}"، sizeof (مزدوج))؛
         
         / * مشغل ترناري يكسر سبيل المثال * /
         كثافة العمليات أ، ب،
         و= 10؛
         ب = (أ == 1) 20: 30 ؛؟
         Console.WriteLine ( "القيم ب هي {0}"، ب).

         ب = (أ == 10) 20: 30 ؛؟
         Console.WriteLine ( "القيم ب هي {0}"، ب).
         Console.ReadLine ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

كثافة حجم 4
حجم القصير هو 2
حجم مزدوج هو 8
قيم باءهى 30
قيم باءهى 20

في C # مشغل الأسبقية

مشغل الأسبقية تحدد مدة جنبا إلى جنب تعبير. وهذا يؤثر على كيف يمكن حساب التعبير. بعض المشغلين لديها أولوية أعلى من شركات أخرى، مثل الجمع والطرح والضرب وعامل القسمة من المشغل أولوية أعلى.

على سبيل المثال، س = 7 + 3 * 2، حيث يتم تعيين س إلى 13 بدلا من 20، وذلك لأن المشغل * أسبقية أعلى من +، وذلك لأول مرة حساب الضرب 3 * 2، ثم يضاف 7.

وسيتم إدراج الجدول التالي في ترتيب الأسبقية المشغل لكل عامل، بعد أن تظهر مشغلي أولوية أعلى أعلاه في الجدول، مع مشغلي أولوية أقل التالية تظهر في الجدول. في التعبير، ويتم احتساب أعلى أولوية مشغلي الأولوية.

类别  运算符 结合性 
后缀 () [] -> . ++ - -   从左到右 
一元  + - ! ~ ++ - - (type)* & sizeof  从右到左 
乘除  * / % 从左到右 
加减 + -  从左到右 
移位  << >>  从左到右 
关系 < <= > >=  从左到右 
相等  == !=  从左到右 
位与 AND  从左到右 
位异或 XOR  从左到右 
位或 OR  从左到右 
逻辑与 AND &&  从左到右 
逻辑或 OR  ||  从左到右 
条件 ?:  从右到左 
赋值  = += -= *= /= %=>>= <<= &= ^= |= 从右到左 
逗号  从左到右 

أمثلة

باستخدام نظام.

OperatorsAppl مساحة
{
    
   برنامج الدرجة
   {
      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         الباحث و= 20؛
         الباحث ب = 10؛
         الباحث ج = 15؛
         الباحث د = 5؛
         كثافة العمليات الإلكترونية؛
         ه = (أ + ب) * ج / د. // (30 * 15) / 5
         Console.WriteLine ( "قيمة (أ + ب) * ج / د هو {0}"، ه)؛

         ه = ((أ + ب) * ج) / د. // (30 * 15) / 5
         Console.WriteLine ( "قيمة ((أ + ب) * ج) / د هو {0}"، ه)؛

         ه = (أ + ب) * (ج / د)؛ // (30) * (15/5)
         Console.WriteLine ( "(أ + ب) * (ج / د) القيم {0}"، ه)؛

         ه = أ + (ب * ج) / د. // 20 + (150/5)
         Console.WriteLine ( "قيمة + (ب * ج) / د هو {0}"، ه)؛
         Console.ReadLine ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

قيمة (أ + ب) * ج / د 90
قيمة ((أ + ب) * ج) / د 90
(A + ب) * (ج / د) القيمة 90
قيمة + (ب * ج) / د 50