سؤال

ما هي العوامل المكافئة التالية من VB.Net إلى C#؟

  • أوبوند ()
  • لبوند ()
  • لاشيء()
  • مركز حقوق الإنسان ()
  • لين ()
  • يوكيز ()
  • لكاسي ()
  • غادر()
  • يمين()
  • رتريم ()
  • لتريم()
  • تقليم()
  • منتصف ()
  • يستبدل()
  • ينقسم()
  • ينضم()
  • رسالة ()
  • معهد التمويل الدولي ()
هل كانت مفيدة؟

المحلول

VB             C#

UBound()     = yourArray.GetUpperBound(0) or yourArray.Length for one-dimesional arrays
LBound()     = yourArray.GetLowerBound(0)
IsNothing()  = Object.ReferenceEquals(obj,null)
Chr()        = Convert.ToChar()
Len()        = "string".Length
UCase()      = "string".ToUpper()
LCase()      = "string".ToLower()
Left()       = "string".Substring(0, length)
Right()      = "string".Substring("string".Length - desiredLength)
RTrim()      = "string".TrimEnd()
LTrim()      = "string".TrimStart()
Trim()       = "string".Trim()
Mid()        = "string".Substring(start, length)
Replace()    = "string".Replace()
Split()      = "string".Split()
Join()       = String.Join()
MsgBox()     = MessageBox.Show()
IIF()        = (boolean_condition ? "true" : "false")

ملاحظات

  • yourArray.GetUpperBound(0) ضد yourArray.Length: إذا كانت الصفيف بطول صفر، فسترجع Getupperbound -1، بينما سيعود الطول 0. UBound() في vb.net سيعود -1 للحصول على صفائف طول الصفر.
  • تستخدم وظائف سلسلة VB فهرس واحد يستند، في حين أن طريقة .NET تستخدم فهرس مستند صفر. بمعنى آخر Mid("asdf",2,2) يتوافق مع "asdf".SubString(1,2).
  • ? ليس ما يعادل الدقيق ل IIf لأن IIf يقيم دائما على حد سواء الحجج، و ? يقوم فقط بتقييم الاحتياجات التي تحتاجها. هذا قد يهم إذا كانت هناك آثار جانبية للتقييم ~ رنة!
  • العديد من وظائف سلسلة VB الكلاسيكية، بما في ذلك Len(), UCase(), LCase(), Right(), RTrim(), ، و Trim(), ، سوف يعامل حجة من Nothing (Null في C #) باعتبارها تعادل سلسلة طول الصفر. تشغيل طرق السلسلة على Nothing سوف، بالطبع، رمي استثناء.
  • يمكنك أيضا تمرير Nothing إلى VB الكلاسيكية Mid() و Replace() المهام. بدلا من رمي استثناء، ستعود هذه Nothing.

نصائح أخرى

UBound()  "array".Length
LBound()
IsNothing(): "object" == null
Chr()     (char)"N"
Len()     "string".Length
UCase()   "string".ToUpper()
LCase()   "string".ToLower()
Left()    "string".Substring(from, to)
Right()   "string".Substring(from, to)
RTrim()   "string".TrimEnd()
LTrim()   "string".TrimStart()
Trim()    "string".Trim()
Mid()     "string".Substring(from, to)
Replace() "string".Replace()
Split()   "string".Split()
Join()    String.Join()
MsgBox()  MessageBox.Show()
IIF()     validate ? iftrue : iffalse;

كل هذه الوظائف هي طرق عضو لل Microsoft.VisualBasic.Information الطبقة، في Microsoft.VisualBasic التجميع، حتى تتمكن من استخدامها مباشرة. ومع ذلك، فإن معظمهم لديهم معادلات C #، أو ما يعادلون اللغة غير اللغوية في فئات الإطار الأساسية .NET:

  • uBound (): Array.GetUpperBound
  • lbound (): Array.GetLowerBound
  • لاشيء() : == null
  • Chr (): (char)intValue (يقذف)
  • لين (): String.Length
  • ucase (): String.ToUpper
  • lcase (): String.ToLower
  • اليسار ()، اليمين () ووسط (): String.Substring (مع حجج مختلفة)
  • Rtrim (): String.TrimEnd
  • ltrim (): String.TrimStart
  • تقليم() : String.Trim
  • يستبدل() : String.Replace
  • انشق، مزق() : String.Split
  • ينضم() : String.Join
  • msgbox (): MessageBox.Show
  • IIF (): condition ? valueIfTrue : valueIfFalse (المشغل الشرطي)

روابط

معظم هذه ستكون أساليب مثيل على كائن السلسلة التي ترجع السلسلة المعدلة.

MsgBox vs. MessageBox.Show(..)
IIF vs. (expression?returnValueIfTrue:returnValueElse)

IIf(test, trueval, falseval) >> (test ? trueval : falseval);

IsNothing(obj) >> (obj == null);

UCase(str) >> str.ToUpper();

LCase(str) >> str.ToLower();

بادئ ذي بدء، معظم هؤلاء ليسوا مشغلا. إنها وظائف، ويتم تضمين الوظائف فقط في vb.net لأسباب التوافق. هذا يعني أنك يجب أن لا تستخدمها في VB.NET إما، وبدلا من ذلك استخدام المعادلات المقدمة من API الجديدة.

  • uBound ()arrayVar.Length
  • Lbound () - عفا عليها الزمن، الحد الأدنى هو دائما 0 في صفيف طبيعي .NET
  • لاشيء() - عفا عليها الزمن. يستخدم Is Nothing في vb.net و == null في ج #
  • Chr ()Convert.ToChar() أو (char)someVar
  • لين ()stringVar.Length استخدم هذا في VB أيضا
  • ucase ()stringVar.ToUpper() استخدم هذا في VB أيضا
  • lcase ()stringVar.ToLower() استخدم هذا في VB أيضا
  • غادر()stringVar.Substring(0, n) استخدم هذا في VB أيضا
  • حق()stringVar.Substring(stringVar.Length - n) استخدم هذا في VB أيضا
  • Rtrim ()stringVar.TrimEnd() استخدم هذا في VB أيضا
  • ltrim ()stringVar.TrimStart() استخدم هذا في VB أيضا
  • تقليم()stringVar.Trim() استخدم هذا في VB أيضا
  • منتصف ()stringVar.Substring(n, m) استخدم هذا في VB أيضا
  • يستبدل()stringVar.Replace() استخدم هذا في VB أيضا
  • انشق، مزق()stringVar.Split() استخدم هذا في VB أيضا
  • ينضم()String.Join() استخدم هذا في VB أيضا
  • msgbox ()MessageBox.Show()
  • IIF ()(condition) ? truepart : falsepart - لاحظ أن هناك بعض الاختلافات، لأن "؟" هو مشغل وليس وظيفة

ستجد التحويل للعديد من هذه الوظائف هذه الصفحة ويكيبيديا.

أعتقد أن بعض هذه مثل Mid() لا تزال متوفرة في .NET Framework في مساحة الاسم Microsoft.VisualBasic التي يمكنك الرجوع إليها من رمز C #.

واحدة أخرى...

VB - ISDBNULL (القيمة)

C # - YourDatarow.isnull ("اسم العمود")

إذا نظرت إلى MSDN، فأنت ترى أن معظم الوقت هناك نموذج التعليمات البرمجية لكلتا اللغتين.

  • UBound() -> إذا كانت x عبارة عن مصفوفة من السلسلة [] على سبيل المثال:x.GetUpperBound();
  • LBound() -> إذا كانت x عبارة عن مصفوفة من السلسلة [] على سبيل المثال:x.GetLowerBound();
  • IsNothing() -> إذا (x == null)
  • Chr() -> char x = (char)65;
  • لين () -> x.Length ()؛
  • UCase() -> افترض أن x عبارة عن سلسلة:x.ToUpper();
  • LCase() -> افترض أن x عبارة عن سلسلة:x.ToLower();
  • Left() -> افترض أن x عبارة عن سلسلة:x.Substring(0, 10);// أول 10 أحرف
  • Right() -> افترض أن x عبارة عن سلسلة:x.Substring(x.Length - 10);// آخر 10 أحرف
  • RTrim() -> x.TrimEnd();
  • LTrim() -> x.TrimStart();
  • Trim() -> x.Trim();
  • Mid() -> افترض أن x عبارة عن سلسلة:سلسلة فرعية ()
  • استبدال () -> افترض أن x عبارة عن سلسلة:x.Replace();
  • Split() -> افترض أن x عبارة عن سلسلة:x.Split();
  • Join() -> String.Join();
  • MsgBox() -> messageBox.Show();
  • IIF () -> عامل التشغيل الثلاثي (x == صحيح؟قيمة حقيقية :قيمة خاطئة)؛

إضافة واحدة إلى هذا يمكن أن يكون مؤشر() وظيفة للعثور على سلسلة داخل السلسلة

مثال أدناه ...

string MainString = "String Manipulation"; 
string SearchString = "pul"; 
int FirstChr = MainString.IndexOf(SearchString); 
//SHOWS START POSITION OF STRING 
MessageBox.Show("Found at : " + FirstChr );

بالإضافة إلى الإجابات أعلاه. كن حذرا مع استبدال لين () -> X.Length. يتيح لك VB Len () تمرير NULL، ولكن في C # ستحصل على استثناء. في بعض الأحيان سيكون من الأفضل استخدام String.isnullREMEMEMED () (إذا كان الوضع يسمح)

وظيفة الفضاء مفقودة من قائمة الجميع:

Space(16) -> new String(" ", 16)

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