Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ブックマーク / jyuch.hatenablog.com (3)

  • VB.NETでもMidステートメントで文字列を置き替えたい - レンコン畑でつかまえて

    はじめに Mid関数の引数について調べていたらふとこんなものを見つけました。 Mid ステートメント 同じ名前で関数とステートメントの両方があるだなんてVBはなんて素敵な言語なんでしょう。 サンプルコード 使う使わないは置いておいてとりあえず使い方を確認してみましょう。 Dim target = "The quick brown fox jumps over the lazy dog." Mid(target, 17, 3) = "cat" Console.WriteLine(target) The quick brown cat jumps over the lazy dog. アッハイ 内部 コンパイラ内でどんな命令に置き換えられているのでしょう。 IL_0000: nop IL_0001: ldstr "The quick brown fox jumps over the lazy

    VB.NETでもMidステートメントで文字列を置き替えたい - レンコン畑でつかまえて
  • VB.NETでもCType演算子をオーバーロードして値を変換したい - レンコン畑でつかまえて

    はじめに これまた特に需要は無かったんですが、意味なくクラスを別のクラスへ変換したかったんでCTypeについて調べてみました。 演算子と関数 なんか調べてみると自分でオーバーロードするCType演算子と変換を実行するCType関数の二種類があるみたいですね。 Operator Statement | Microsoft Docs CType 関数 (Visual Basic) | Microsoft Docs 自分で変換を定義するときは演算子オーバーロードとしてCTypeを実装し、明示的に呼び出すときはCType関数を用いて変換を指示すると自分で定義したCType演算子があればそれが呼ばれるし、それ以外にもプリミティブ型であればいい感じにコンパイラが等価なMSILとしてインラインに展開するみたいな感じっぽい? VBのことだしやっぱりCType("1.0", Double)とかやるとみんな大

    VB.NETでもCType演算子をオーバーロードして値を変換したい - レンコン畑でつかまえて
  • VB.NETでも静的なローカル変数を使いたい - レンコン畑でつかまえて

    はじめに この前、ふとVBのキーワード一覧を見ていたらStaticなる物を見つけました。 Static (Visual Basic) どうも静的なローカル変数を宣言する時に使うもののようです。 正直VBがオブジェクト指向言語を標榜しているならこんなものは要らないはずですが、なぜかあります。 まぁ、あるもんはあるんですからしゃーないですけど。 サンプルコード Staticが指定された変数は以下の特徴があります。 メソッドが最初に呼ばれた時に1度だけ初期化される メソッドが終了しても値を保持し続ける クラスメソッドの場合はクラスに一つ、インスタンスメソッドの場合はインスタンスごとに値を保持する とまぁ、だからこれってプライベートなフィールドで良くね?という感じです。 Module Module1 Sub Main() Dim a = New Hoge() Console.WriteLine(a

    VB.NETでも静的なローカル変数を使いたい - レンコン畑でつかまえて
  • 1