読者です 読者をやめる 読者になる 読者になる

C#でもVB.NETの超便利なメソッドを使いたい111111111

はじめに

いろいろごめんなさい。

超便利メソッド

VB.NETにはLen(int)とかLen(char)とかLen(string)とかの超便利メソッドがたっくさんありますよね。 でもそれらのメソッドC#では使えない。不便だと思いません? それらをC#でも使えるようにするためのメモです11111111

え?使う必要がない?そんなこと言わないでください。

手順

  1. ソリューションエクスプローラー → 参照設定 → 参照の追加 → Microsoft.VisualBasicチェックボックスを入れる → OK
  2. using Microsoft.VisualBasic;をコードに追加
  3. 好きなだけVBメソッドを呼び出す
  4. 楽しい1111111
using System;
// 魔法のキーワード☆彡
using Microsoft.VisualBasic;

namespace VBCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Strings.Len("VBバンザーイ"));
            Console.WriteLine(Strings.ChrW(12354));
        }
    }
}

実行結果

9
あ

弊社のVisual Studioのバージョンは2013なので現状はクラス名*1は省略できませんが、C# 6.0ではusing staticがサポートされるみたいなので、よりVBらしさをアピールできます。

補足

これはVBOption StrictとかOption Compareとかのコンパイル時にVBコンパイラが介入して実現する機能についてC#でも行うといったものではなく、単にモジュールで定義されているメソッドを呼び出しているだけです。

ですので、nullと空文字が等しくなるミラクル等価演算子stringがいつの間にかdoubleに変換される亜空間型変換などはやってくれません。

おわりんこ

*1:モジュールの実態はクラス