سؤال

أثناء البحث عن كيفية الهروب من اقتباس واحد في string.format ، وجدت الإجابة في لذلك: الهروب من اقتباس واحد في string.format ()

يبدو أنه مختلف بالنسبة لـ VB. لقد اختبرته ، وفي الواقع يحتاج C#

string s = DateTime.Now.ToString("MMM d \\'yy 'at' H:mmm");

بينما يحتاج VB

Dim s As String = Now.ToString("MMM d \'yy 'at' H:mmm")

لماذا يحتاج C# إلى اندلاء عكسي مزدوج ، و VB للاضطراب الخلفي واحد؟ قد يكون هذا سؤالًا سخيفًا إلى مستخدمي C# ، لكن بينما يمكنني قراءة C# ، لا اعتدت على كتابته.

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

المحلول

في C#، يمكن أن تحتوي الحرفية على تسلسل الهروب مثل n لخط جديد أو t للحصول على علامة تبويب أو "للحصول على عرض أسعار. إذا لم تكن بحاجة إلى الهروب ، فيمكنك بادئة الحرفي مع @ (على سبيل المثال: على سبيل المثال: @"MMM ...") والحصول على نفس السلسلة VB.

في VB ، لا يُسمح بالهروب أبدًا ، لذلك ليست هناك حاجة للهروب من الخلف.

نصائح أخرى

السبب في أن C# يدعم تسلسل الهروب داخل الأسلاك الحرفية عبر \ حرف. لا يوجد لدى VB آليات هروب ومن ثم الأغنية المنفردة \ تم تفسيره على أنه أ \.

في C# يمكنك الحصول على نفس السلوك باستخدام السلاسل الحرفية

@"MMM d \'yy 'at' H:mmm"

في C# ، يكون لـ Backslash معنى ( n هو Tab newline t ....). لذا فإن backlslahs نفسها هي شخصية هروب - يجب عليك الهروب :) أو وضع علامة في السلسلة - وهذا يجعل "سلسلة غير هاربة" (عادة ما تستخدم للمسارات)

في C# سوف يهرب. سيصبح نصك "mmm d 'yy' في 'h: mmm". لا تحتاج إلى الهروب من الحرف في سلسلة. إذا كنت ستستخدم "في السلسلة من ناحية أخرى ، فستحتاج إلى الهروب منها حتى لا تنهي سلسلة" mmm d "yy " في "h: mmm". أو يمكنك أيضًا استخدام طريقة @"" String التي ستهرب تلقائيًا من الأحرف من أجلك (لا "رغم ذلك). لذلك يمكنك كتابة @" لن يكون هذا n سطرين "

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