Top / .NET備忘録 / 11.文字列の扱い / 07.VBString クラスを演算可能に

VBString クラスを演算可能にします。

といっても、& 演算子だけですが。

& 演算子を実装するには、op_Concatenate を実装し、System.Runtime.CompilerServices.SpecialNameAttribute で修飾します。

 [System.Runtime.CompilerServices.SpecialName]
 public static VBString op_Concatenate(VBString a, VBString b)
 {
     if ((object)a == null) a = string.Empty;
     if ((object)b == null) b = string.Empty;
 
     int nLengthB = a.LengthB + b.LengthB;
     if (nLengthB == 0) return string.Empty;
     byte[] newValue = new byte[nLengthB];
     if (a.LengthB > 0) Array.Copy(a.ToByteArray(), newValue, a.LengthB);
     if (b.LengthB > 0) Array.Copy(b.ToByteArray(), 0, newValue, a.LengthB, b.LengthB);
     return newValue;
 }

テストしてみましょう。 「漢」を左1バイトと右1バイトに分解して、& 演算してみます。

 Dim value As String = "漢"
 Dim valueLeftB As VBString = LeftB(value, 1)
 Dim valueRightB As VBString = RightB(value, 1)
 value = valueLeftB & valueRightB
 
 Debug.Print(value)

実行結果:




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-09-13 (金) 01:39:13 (1433d)