web-dev-qa-db-ja.com

VB to C#Functions

VB.NetからC#への次の演算子に相当するものはどれですか?

  • Bound()
  • LBound()
  • なんでもない()
  • Chr()
  • レン()
  • UCase()
  • LCase()
  • 左()
  • 正しい()
  • RTrim()
  • LTrim()
  • トリム()
  • Mid()
  • Replace()
  • スプリット()
  • Join()
  • MsgBox()
  • IIF()
39
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) vs yourArray.Length:配列の長さがゼロの場合、GetUpperBoundは-1を返し、Lengthは0を返します。VB.NETのUBound()は、長さがゼロの配列に対して-1を返します。 。
  • VB文字列関数は1ベースのインデックスを使用しますが、.NETメソッドはゼロベースのインデックスを使用します。つまり、Mid("asdf",2,2)"asdf".SubString(1,2)に対応します。
  • IIfは常にboth引数を評価し、?は必要な引数のみを評価するため、?IIfとまったく同じではありません。評価の副作用がある場合、これは問題になる可能性があります〜shudder!
  • 多くの古典的なVB String関数、Len()UCase()LCase()Right()RTrim()、およびTrim()は、Nothing(c#ではNull)の引数を長さゼロの文字列と同等として扱います。もちろん、Nothingで文字列メソッドを実行すると、例外がスローされます。
  • Nothingを従来のVB Mid()およびReplace()関数に渡すこともできます。例外をスローする代わりに、これらはNothingを返します。
79
Gavin Miller
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;
4
PMN

これらの関数はすべて、Microsoft.VisualBasic.InformationアセンブリのMicrosoft.VisualBasicクラスのメンバーメソッドなので、直接使用できます。ただし、それらのほとんどには、C#の同等物、またはコア.NETフレームワーククラスの非言語固有の同等物があります。

  • UBound():Array.GetUpperBound
  • LBound():Array.GetLowerBound
  • IsNothing():== null
  • Chr():(char)intValue(キャスト)
  • Len():String.Length
  • UCase():String.ToUpper
  • LCase():String.ToLower
  • Left()、Right()、Mid():String.Substring(異なる引数を使用)
  • RTrim():String.TrimEnd
  • LTrim():String.TrimStart
  • Trim():String.Trim
  • Replace():String.Replace
  • Split():String.Split
  • Join():String.Join
  • MsgBox():MessageBox.Show
  • IIF():condition ? valueIfTrue : valueIfFalse(条件演算子)

リンク

3
Thomas Levesque

これらのほとんどは、変更された文字列を返す文字列オブジェクトのインスタンスメソッドです。

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

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

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

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

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

2

まず、それらのほとんどはNOT演算子です。これらは関数であり、これらの関数は互換性の理由からVB.Netにのみ含まれています。つまり、VB.netでもこれらを使用するべきではなく、代わりに新しいAPIで提供される同等のものを使用する必要があります。

  • Bound() — _arrayVar.Length_
  • LBound() —廃止され、下限は通常の.Net配列ではalways0です
  • IsNothing() —廃止されました。 VB.Netでは_Is Nothing_を使用し、C#では_== null_を使用します
  • Chr()Convert.ToChar()または_(char)someVar_
  • Len() — _stringVar.Length_ VBも使用
  • Case()stringVar.ToUpper() VB too
  • LCase()stringVar.ToLower() VB too
  • Left()stringVar.Substring(0, n) VBでも使用する
  • Right()stringVar.Substring(stringVar.Length - n) VB too
  • RTrim()stringVar.TrimEnd() VBも使用する)
  • LTrim()stringVar.TrimStart() VBでもこれを使用
  • Trim()stringVar.Trim() VB too
  • Mid()stringVar.Substring(n, m) VB too
  • Replace()stringVar.Replace() VB too
  • Split()stringVar.Split() VBも使用
  • Join()String.Join() VBでも使用する
  • MsgBox()MessageBox.Show()
  • IIF() — _(condition) ? truepart : falsepart_-「?」のため、いくつかの違いがあることに注意してください関数ではなく演算子です
2
Joel Coehoorn

このウィキペディアのページ でこれらの関数の多くの変換を見つけることができます。

1
Meta-Knight

Mid()のようなこれらのいくつかは、Microsoft.VisualBasic名前空間の.NET Frameworkでまだ利用可能で、C#コードから参照できると信じています。

1
Adam Neal

もう1つ...

VB-IsDBNull(値)

C#-yourdatarow.IsNull( "columnName")

1
Cylon Cat

これにもう1つ追加すると、IndexOf() string内の文字列を検索する関数になります。

以下の例...

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

MSDNを見ると、ほとんどの場合、両方の言語のサンプルコードがあることがわかります。

0
RvdK
  • UBound()->たとえば、xがstring []の配列の場合:x.GetUpperBound();
  • LBound()-> xがstring []の配列の場合。例:x.GetLowerBound();
  • IsNothing()-> if(x == null)
  • Chr()-> char x =(char)65;
  • Len()-> 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.Substring()
  • Replace()-> xが文字列であると仮定します:x.Replace();
  • Split()-> xが文字列であると仮定します:x.Split();
  • Join()-> String.Join();
  • MsgBox()-> MessageBox.Show();
  • IIF()->三項演算子(x == true?true-value:false-value);
0
Scott Anderson

上記の答えに加えて。 Len()-> x.Lengthの置き換えには注意してください。 VB Len()はnullを渡すことができますが、c#では例外が発生します。場合によっては、String.IsNullrEmpty()を使用した方がよい場合があります(状況が許す場合)

0
Viktor Arsanov

スペース関数は、他の全員のリストにありません。

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

0
Echilon