Monday 12 March 2018

الخيار مقارنة النص مقابل ثنائي


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

الخيار قارن نص أو ثنائي؟ [الرد] رسس.
الاختصارات.
guideraven.
الخيار قارن نص أو ثنائي؟
نوف 05، 2006 09:14 بيإم & # 124؛ غيدرافن & # 124؛ حلقة الوصل.
الخيار مقارنة ثنائي أو النص؟
ما الذي يستخدمه معظمكم، وهل هناك سبب معين لذلك، بخلاف واحد هو الافتراضي؟ لتطبيق متعدد اللغات، والذي سيكون الخيار الأفضل؟
أحتاج إلى أن تكون بياناتي حساسة لحالة الأحرف، أي إذا تغير مستخدمي & كوت؛ أمي & كوت؛ إلى & كوت؛ أمي & كوت؛ يحتاج نظامي إلى التعرف على ذلك وتسجيله كتغيير.
أنا لا أعتقد أنني سوف تحتاج من أي وقت مضى لفرز البيانات في طلبي وطبقة واجهة المستخدم، لأنني أحصل على كل البيانات الخاصة بي من قاعدة بيانات خادم سكل ويتم الفرز هناك.
ولكن مع الخيار الافتراضي مقارنة ثنائي، سوف تحتاج إلى تذكر لاستخدام. toUpper أو تولور لضمان مقارنات حالة غير حساسة عند التحقق من حقول الحالة، مثل إذا x. statusCode. tolower = & كوت؛ نشط & كوت؛ ثم.
نود أن نسمع بعض الاقتراحات. شكر.
ري: أوبتيون قارن نص أو ثنائي؟
نوف 05، 2006 10:27 بيإم & # 124؛ مبانافيج & # 124؛ حلقة الوصل.
أنا لا تعتمد على الخيار مقارنة لمقارنات السلسلة. أفضل أن تكون صريحة عند إجراء المقارنة.

خيارات مترجم فيسوال ستوديو، الجزء 3: الخيار قارن.
الخيار قارن هو خيار المترجم في ف مع الافتراضي الصحيح لجميع المشاريع الجديدة. وهنا ما تحتاجه الشركات الصغيرة والمتوسطة لمعرفة الخيار.
هذه هي الدفعة الثالثة في سلسلتي حول إعداد خيارات المترجم لمشاريع فيسوال ستوديو ف، الإصدارات 2005-2010. قراءة الأقساط السابقة: تعيين خيارات فيسوال ستوديو كومبيلر، الجزء 1 وخيارات مترجم فيسوال ستوديو، الجزء 2: الخيار صارمة.
خيارات برنامج التحويل البرمجي هي إعدادات مستوى المشروع التي تحدد كيفية عمل المترجم عند تجميع التعليمات البرمجية. عرض وتعيين خيارات التحويل البرمجي في علامة التبويب ترجمة في ورقة خصائص المشروع (الشكل أ). في هذا المنصب، وسوف نناقش الخيار الخيار التبديل. الشكل ألف.
ما يعنيه.
الخيار قارن هو مفتاح الخيار الثاني الذي يحدد كيف يقارن كلر البيانات سلسلة في عمليات المقارنة التي تستخدم =، & لوت؛ & غ ؛، & لوت ؛، & غ ؛، ومثل المشغلين. الخياران هما ثنائي (الطريقة C # يفعل ذلك) والنص. في جميع إصدارات ف، الافتراضي هو ثنائي. لذلك إذا قمت بتثبيت فيسوال ستوديو ولا تغيير أي شيء، ستعمل مقارنات السلسلة الخاصة بك كما تفعل في C # في جميع الحالات. (لا يوفر لك مترجم C # خيارا.)
على عكس ما يوحي به الاسم، هذا لا يؤثر على معظم طرق مقارنة السلسلة المتاحة لك في ف. هناك العشرات من طرق مقارنة السلسلة بخلاف =، & لوت؛ & غ ؛، & لوت ؛، & غ ؛، وما شابه ذلك، ولا يتأثر أي منها بالميزة أوبتيون كومبار. وهذا يشمل مجموعة واسعة من أساليب ثابتة (مشتركة) ومثال على الفئات التي تنفذ إينوميرابل و إكومبارابل، مثل فئات سلسلة، عدد لا حصر، و صفيف. وإليك قائمة كاملة في الغالب من الأساليب التي تتجاهل الخيار مقارنة.
وهذا يعني أنه، افتراضيا، كافة أساليب المقارنة التي يمكن استدعاء على قائمة عامة أو صفيف أو مجموعة استخدام ثنائي مقارنة ما إذا كنت تنوي ذلك أم لا، كما هي الأساليب في القائمة أعلاه استدعاء على سلاسل. يمكنك إجراء استثناءات عن طريق تعيين أوبتيون كومبار للوحدات، والطبقات، والهياكل.
دعونا ندخل في التفاصيل.
A ثنائي مقارنة تبدو التمثيل الثنائي للبيانات سلسلة، بدلا من أي نوع من التمثيل الأبجدي الرقمي، لتحديد ما إذا كانت سلسلتين ما يعادلها. على سبيل المثال، التمثيل الثنائي للحرف كبير A هو 01000001. (ونيكود و أسي مخططات ترميز مختلفة، ولكن هذا ليس أفضل مكان للوصول إلى الاختلافات، لذلك أنا باستخدام حالة بسيطة فيها أسي و UTF - 8 هي في الأساس نفسه.) ثنائي مقارنة تبدو في هذا التمثيل الثنائي، وليس شكل مقروء من الإنسان ما يمثله.
أهمية هذا يصبح واضحا بمجرد أن تهتم دقة صفحة التعليمات البرمجية - أي حساسية الحالة، مجموعات الأحرف المختلطة، أو أي السيناريو الذي يجب أن تعامل كل حرف ممكن على أنها متميزة عن بعضها البعض. التمثيل الثنائي أوتف-8 للحرف الصغير a هو 01100001 - بوضوح ليس نفس الشيء مثل الحرف A، وهو 01000001. باستخدام ثنائي مقارنة، لا توجد طريقة a = مقارنة A و a سيعود صحيح.
وينطبق الشيء نفسه على الأحرف معلمة. النظر في الاحتمالات المختلفة لالمتواضع أوتف-8 ترميز صغيرة بمجرد إضافة المتغيرات معلمة.
افتراضيا، ستنظر ف إلى A & لوت؛ & غ؛ a، و & لوت؛ & غ؛ ا.
ولكن مقارنة السلسلة ليست مجرد تكافؤ؛ بل هو أيضا حول الأسبقية (ترتيب الفرز). A، a، و â ليست مجرد المساواة؛ لديهم مكان معين في الخط، واحد قبل الآخر. يتم تحديد الأسبقية بواسطة صفحة التعليمات البرمجية. تحت صفحة التعليمات البرمجية الإنجليزية أنسي 1252 (التي تستخدمها اللغة الإنجليزية ومعظم اللغات الأوروبية)، التي تنتج ترتيب ترتيب تصاعدي مثل هذا:
(تشير وثائق مسن إلى أن ترتيب الفرز سيكون A & لوت؛ a & لوت؛ â، ولكن هذا ليس صحيحا.)
عند فرزها بترتيب تصاعدي على ثنائي مقارنة باستخدام صفحة التعليمات البرمجية 1252، سوف يأتي كبير A دائما بعد صغيرة.
وتحدد صفحات الشفرات الأسبقية بين كل حرف منفرد، بحيث تكون للأحرف غير المنحرفة والأحرف ذات الأسبقية النسبية. خلافا لوثائق مسن، فإن حرف Z كبير لا يظهر بالضرورة قبل u كبيرة. إليك ما تحصل عليه مع أنسي 1252:
هذا هو النتيجة من ثنائي مقارنة - كل تمثيل حرف ممكن فريد من نوعه ولها ترتيب الفرز محددة.
تؤثر مقارنة النص على المقارنات التي تتضمن =، & لوت؛ & غ ؛، & لوت ؛، & غ ؛، ومثل المشغلين. فإنه يجعل أساسا استثناءات استنادا إلى تمثيل النص من الشخصيات. الاستثناء الأكثر أهمية هو أنه يعامل الأحرف مختلفة الأحرف كما هو نفسه لأغراض التكافؤ؛ ترتيب الترتيب غير متأثر. وهكذا، تحت نص مقارنة:
يتم تحديد ترتيب الفرز بواسطة صفحة الشفرة، ولكن في مقارنة النص، لن يتم فرض ترتيب الفرز إذا كنت تستخدم علامة & لوت؛ أو & غ؛ المشغل أو العامل؛ سيتم فرضه فقط إذا كنت تستخدم IEnumerable. Sort () أو أورديربي () أو ثينبي ().
مواضيع ذات صلة:
تاريخ المناقشة.
اختيارات المحررين.
النشرات الإخبارية المجانية، في البريد الوارد الخاص بك.
أخبار التكنولوجيا يمكنك استخدامها.
نحن نقدم كبار رجال الأعمال أخبار التكنولوجيا عن الشركات، والناس، والمنتجات ثورة الكوكب.
أفضل من الأسبوع.
يسلط المحررون الضوء على مقالات تيكريبوبليك، وصالات العرض، ومقاطع الفيديو التي لا يمكن أن تفوتها على الإطلاق حتى تبقى على أحدث أخبار تكنولوجيا المعلومات، والابتكارات، والنصائح.

الخيار مقارنة النص مقابل الثنائي
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
إيجابيات وسلبيات الخيار قارن ثنائي / نص في ف.
ما هي إيجابيات وسلبيات توحيد على استخدام الخيار مقارنة النص مقابل الخيار قارن ثنائي لتطوير ف؟
فقط بعض الخلفية لأنه يبدو أنه من شأنه أن يساعد - فريق التطوير بلدي وجدت أنه من الأسهل بكثير لتوحيد على الخيار صارمة على، الخيار استنتاج، والخيار صريح بسبب مزايا واضحة على البدائل. ما لم نجد من السهل على توحيد على هو الخيار قارن النص / ثنائي كما يبدو أن هناك مزايا وعيوب لكلا والمطورين مختلفة لها آراء مختلفة. وكانت بعض الحجج المقدمة من كل جانب على النحو التالي:
بعض المزايا / الحجج ل أوبتيون كومبار تكست:
أنه يقلل من السمنة في التعليمات البرمجية عن طريق إزالة الحاجة إلى سترينكومبارر s و. تولور () المكالمات و StringComparison. OrdinalIgnoreCase في جميع أنحاء المكان نادرا ما تكون احتياجات البيانات المعنية بالغلاف، كما يتضح من معظم قواعد البيانات كونها غير حساسة لحالة الأحرف. نادرا ما كنت تريد حقا أن نميز بين هذا وهذا وهذا عند إجراء مقارنة البيانات. بعض حالات الاستخدام المحددة هي أبسط عندما لا داعي للقلق حول الغلاف. على سبيل المثال، التعامل مع أحداث التحكم في أسب حيث يتم إرسال الأوامر إلى الرمز الخلفى حيث يصعب تعقب السلاسل والقضايا المتعلقة بالغلاف حيث لا يستطيع المعدي مساعدتك. فكر حدد عبارات الحالة ل & لوت؛ أسب: ريبيتر & غ؛ الأحداث كمثال. العديد من المخاوف التي أثيرت حول مقارنة النص تتعلق التدويل، والتي غالبا ما لا تكون ذات صلة لكثير من التطبيقات. ف على وجه التحديد هو حالة حساس كلغة، على الرغم من فيسوال ستوديو يساعدك على الأقل على فرض الاتساق في الغلاف الخاص بك. سكل هو حالة حساس كذلك. السلاسل هي المكان الوحيد حيث عليك أن تتذكر ما يدعو للقلق، والذي يسلط الضوء على عدم الراحة بطرق كنت لا تلاحظ عادة إذا كنت قلقا حول ذلك في كل مكان.
بعض المزايا / الحجج للخيار قارن بيناري:
C # يعمل بهذه الطريقة، كما تفعل معظم اللغات الأخرى. ومن غير المتوقع إلى حد ما أن يكون السلوك البديل وغير متوقع ليست جيدة في البرمجة. هناك عقوبة أداء طفيف مع الخيار مقارنة النص كما يتضح من إيل ولدت في تجميع. الخيار قارن بيناري ليس لديها تلك العقوبة. الخيار قارن يجعل النص فقط أجزاء معينة من التعامل مع الأحرف غير حساسة. ولكن، فإنه لا يجعل من ذلك أن أشياء مثل فهرسة القاموس هي حالة حساسة افتراضيا. لذلك، انها ليست مثل الخيار قارن نص يجعل في الواقع بحيث لم يكن لديك ما يدعو للقلق غلاف على الإطلاق. إذا كان يعمل فقط نصف الطريق، لماذا عناء؟ البرمجة صعبة. من الأفضل عدم محاولة تسليط الضوء على هذه الحقيقة. القلق حول سلسلة الغلاف هو جزء من الصفقة. البشر يعترفون هذا يختلف عن هذا و تيس. بطبيعة الحال يجب أن التعليمات البرمجية الخاصة بك أيضا - بعد كل شيء، فهي ليست حقا نفس السلسلة بالضبط.
لذلك أنا حقا أتساءل فقط إذا كان هناك أي اعتبارات أخرى.
ربما كان من المفيد لو عرفت ما أعتبره جوابا على ذلك. إذا كنت تستطيع أن تشير إلى أي مورد خارجي موثوق الذي يتحدث من خلال هذه القضايا على نحو أكثر شمولا، أو تشير إلى المعايير وأفضل الممارسات مناقشة أو الكتاب الذي يعطي توجيهات حول هذا الموضوع، التي من المؤكد أن العد.
مع الخيار قارن النص لا داعي للقلق حول حالة عند مقارنة السلاسل. وهذا يمكن أن يكون فائدة كبيرة، وتجنب تحويل كل شيء إلى انخفاض (أو العلوي) القضية إلى كومابر للمساواة سلسلة.
المكان الآخر حيث يلعب هذا الجزء هو فرز السلاسل. الخيار قارن سيتم فرز النص مثل قائمة الملفات في نظام التشغيل ويندوز، ولكن أوبتيون كومبار بيناري سوف تصنف مثل قائمة ملفات أونيكس (تظهر جميع أسماء ملفات الحالة العليا قبل أسماء الملفات ذات الأحرف الصغيرة).
بعد قراءة التعليقات والإجابة الأخرى، والتفكير أكثر قليلا، أود أن أقول الخيار مقارنة بيناري هو الطريق للذهاب من وجهة نظر من الاتساق مع بقية الإطار. إذا كانت مفاتيح القاموس الخ حساسة لحالة الأحرف بغض النظر عن الخيار قارن الإعداد ثم استخدام المقارنات الثنائية افتراضيا في جميع أنحاء التعليمات البرمجية الخاصة بك هو مجرد كونها متسقة. كل ما تحتاجه للقلق هو إذا، للمقارنة معينة، كنت في حاجة إليها لتكون حالة غير حساسة ورمز لذلك.
إذا ذهبت مع الخيار مقارنة النص ثم ليس فقط لا داعي للقلق حول ما إذا كنت أو لم تكن تحتاج إلى مقارنة معينة لتكون حالة - (في) حساسة تحتاج أيضا إلى أن تكون على بينة من السلوك الافتراضي في السياق الحالي.
ثم يصبح حجة لا من الاتساق مع لغات أخرى، ولكن من الاتساق مع الإطار الذي كنت تتطور ل.
استخدام ثنائي، لأن هذا هو معظم اللغات الأخرى الافتراضية، وهذا ما الطبقات الافتراضية ل.
يجب أن لا يؤدي استخدام كلمة واحدة إلى كسر الملف بالكامل.
إذا كنت حقا بحاجة النص (الذي ليس في كثير من الأحيان)، ثم مجرد استخدام سترينغبار أو String. Equals.
سكل ليست حساسة لحالة الأحرف ولكن الاستعلامات في لينق هي. هو مصدر بعض البق داخلية.
الحل هو عدم استخدام النص للمفاتيح. عند الاقتضاء ثم ضمان حالة متسقة في ديسيبل. وأخيرا عندما لا يكون ذلك ممكنا، ببساطة استخدام تورور حسب الحاجة. أنا لن ريكوميند باستخدام تورور إلا حسب الحاجة لأن هذا حقا القبيح حتى التعليمات البرمجية.
إذا كنت بحاجة إلى إجراء الكثير من المقارنات غير حساسة لحالة الأحرف، قم بكتابة وحدة نمطية مع بعض الأساليب المساعدة المسماة بإيجاز وتضمينها في المشروع الخاص بك. في حين كاسينسنستيفيكوالس (S1، S2) أو (باستخدام أساليب الإرشاد) S1.CaseInsensitiveEquals (S2) سيكون أكثر مطول من S1 = S2، العديد من التطبيقات تحتاج إلى مزيج من حساسة لحالة الأحرف ومقارنات غير حساسة للحالة. وسيؤدي استخدام المشغل المتساوي للإبلاغ كسلاسل متساوية تحتوي على تسلسلات مختلفة من الأحرف إلى زيادة شدة المقارنات الحساسة للحالة. وعلاوة على ذلك، هناك العديد من الطرق لإجراء مقارنات غير حساسة للحالة. إذا كان أحد يستخدم طريقة المساعد، رمز هذه الطريقة سوف تكشف بدقة ما هي الطريقة التي يستخدمها. على النقيض من ذلك، إذا كان أحد يستخدم الخيار قارن النص، وسوف يكون من الأصعب بكثير معرفة كيف سيتم التعامل مع جميع الحالات الزاوية المختلفة.

No comments:

Post a Comment