ما هو الفرق بين النوعين bool و boolean في لغة C#؟

StackOverflow https://stackoverflow.com/questions/134746

  •  02-07-2019
  •  | 
  •  

سؤال

ماهو الفرق بين bool و Boolean أنواع في C#؟

هل كانت مفيدة؟

المحلول

bool هو اسم مستعار ل System.Boolean نحن فقط int هو اسم مستعار ل System.Int32.انظر القائمة الكاملة للأسماء المستعارة هنا: جدول الأنواع المدمج (مرجع C#).

نصائح أخرى

لا أعتقد أن هناك واحد.

bool هو مجرد اسم مستعار ل System.Boolean

هم واحد في نفسه.bool هو مجرد اسم مستعار لـ Boolean.

لا يوجد فرق - bool هو ببساطة اسم مستعار لـ System.Boolean.

http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx

أدركت أن هذا قد مر سنوات عديدة ولكنني عثرت على هذه الصفحة من جوجل بنفس السؤال.

يوجد اختلاف بسيط في صفحة MSDN حتى الآن.

VS2005

ملحوظة:

إذا كنت تحتاج إلى متغير منطقي يمكن أن يكون له أيضًا قيمة خالية، فاستخدم bool.لمزيد من المعلومات، راجع الأنواع الخالية (دليل برمجة C#).

VS2010

ملحوظة:

إذا كنت تحتاج إلى متغير منطقي يمكن أن يحتوي أيضًا على قيمة خالية، فاستخدم bool؟.لمزيد من المعلومات، راجع الأنواع الخالية (دليل برمجة C#).

إنهم متشابهون.يساعد Boolean على تبسيط التحويل ذهابًا وإيابًا بين C# وVB.Net.يميل معظم مبرمجي C# إلى تفضيل "bool"، ولكن إذا كنت في متجر يوجد به الكثير من كل من VB.Net وC#، فقد تفضل Boolean لأنه يعمل في كلا المكانين.

أحدهما هو اسم مستعار للآخر.

وكما قيل، فهما متماثلان.هناك نوعان لأن bool هي كلمة أساسية C# وBoolean هي فئة .Net.

bool هو اسم مستعار للفئة المنطقية.أستخدم الاسم المستعار عند الإعلان عن متغير واسم الفئة عند استدعاء أسلوب في الفصل.

إنهما متماثلان، Bool هو مجرد System.Boolean مختصر.استخدم Boolean عندما تكون مع مبرمج VB.net، لأنه يعمل مع كل من C# وVb

لاحظ أن Boolean سوف تعمل فقط إذا كان لديك using System; (والذي يتم تضمينه عادة، ولكن ليس بالضرورة) (إلا إذا قمت بكتابته كـ System.Boolean). bool لا تحتاج using System;

bool هو نوع بدائي، مما يعني أن القيمة (صواب/خطأ في هذه الحالة) يتم تخزينها مباشرة في المتغير.منطقية هو كائن.متغير من النوع Boolean يخزن مرجعًا لكائن منطقي.والفرق الحقيقي الوحيد هو التخزين.سيشغل الكائن دائمًا ذاكرة أكبر من النوع البدائي، ولكن في الواقع، لن يكون لتغيير جميع القيم المنطقية إلى منطقية أي تأثير ملحوظ على استخدام الذاكرة.

كنت مخطئ؛هذه هي الطريقة التي تعمل بها جافا مع منطقية ومنطقية.في C#، يعتبر bool وBoolean من الأنواع المرجعية.كلاهما يخزن قيمتهما مباشرة في المتغير، وكلاهما لا يمكن أن يكون خاليًا، وكلاهما يتطلب طريقة "convertTO" لتخزين قيمهما في نوع آخر (مثل int).لا يهم إلا الوظيفة التي تستخدمها إذا كنت بحاجة إلى استدعاء دالة ثابتة محددة ضمن الفئة المنطقية.

ربما يكون bool "أخف" قليلاً من Boolean؛ومن المثير للاهتمام أن تغيير هذا:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

...الى هذا:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

... تسبب في أن ملف CS الخاص بي ينبت "باستخدام النظام" ؛ تسبب تغيير النوع مرة أخرى إلى "Bool" في أن يتحول شعر الفقرة إلى اللون الرمادي.

(Visual Studio 2010، مشروع WebAPI)

bool هو اسم مستعار لـ Boolean.ما تفعله الأسماء المستعارة هو استبدال سلسلة نصية بسلسلة أخرى (مثل البحث/الاستبدال-الكل في المفكرة++)، قبل تجميع التعليمات البرمجية مباشرة.استخدام أحدهما على الآخر ليس له أي تأثير في وقت التشغيل.

في معظم اللغات الأخرى، قد يكون أحدهما نوعًا بدائيًا والآخر سيكون نوعًا كائنًا (نوع القيمة والنوع المرجعي في لغة C#).لا تمنحك لغة C# خيار الاختيار بين الاثنين.عندما تريد استدعاء طريقة ثابتة محددة في فئة Boolean، فإنها تتعامل تلقائيًا بطريقة سحرية مع Boolean كنوع مرجعي.إذا قمت بإنشاء متغير منطقي جديد، فإنه يعامله تلقائيًا بطريقة سحرية كنوع مرجعي (إلا إذا كنت تستخدم طريقة Activator.CreateInstance).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top