Java脳で戦うVB.net 基礎その1


VBの基礎
四則演算 + - * /
/ -> 少数以下まで計算する
\ -> 端数切捨て 例:10 \ 3 = 3
剰余 mod
累乗 ^

文字列結合 & 例:"薔薇" & 128
+ 例:"薔薇" & "水晶"
+ はString型しか結合しない。

ビット演算
ビット反転 Not
論理和 Or
論理積 And
排他的論理和 Xor

条件式
等号 =
不等号 <>
大小比較 <、>、<=、>=
パターンマッチ Like
参照比較 Is

条件式の論理演算
否定 Not
または Or、OrElse
かつ And、AndAlso
排他的論理輪 Xor
その他
AddressOf
GetType

データ型
整数 10進数表記 先頭 &Hで16進数 &Oで8進数
Byte(0〜255) 符号無し1バイト
Short 符号有り2バイト (明示表記)末尾にS
Integer 符号有り4バイト (明示表記)末尾にIか%
Long 符号有り8バイト (明示表記)末尾にLか&

浮動小数
Single IEEE745 準拠 4バイト (明示表記)末尾にFか!
Double IEEE745 準拠 8バイト (明示表記)末尾にRか#

10進数データ型
Decimal ±1.0~-28 〜 ±7.9~28 (明示表記)末尾にDか@

文字
Char Unicode文字(1文字2バイト) (明示表記)末尾にC
String(参照型) Unicode文字列

その他
Boolean 論理型
Date 8バイト長の日付け/時間データ
Object(参照型) 汎用データ型

リテラルにつけられた接尾辞のうち、「%」、「&」、「!」、「#」、「@」はリテラルだけでなく、
変数につけることもできます。この接尾辞をつけることで、その変数がどんなデータ型かを表すことができます。
例えば、以下の 2 つの変数宣言は、どちらの変数(D1 と D2)も Double 型であることを示しています。
Dim D1 As Double
Dim D2#

リテラル
整数 Integer型 Integer型以上の値はLong型になる。
浮動少数点 Double型
文字 ""で囲い、String型となる。一文字の場合はChar型

Dim宣言
Dim 変数名 As データ型 = 初期値, 変数名 As データ型 = 初期値, ....

「As 型」 や 「= 初期値」 を省略することができます。

Static宣言
Dim宣言ではスコープ処理が終わったらメモリ上から破棄されるが、Static Dim...と
する事で静的にメモリ上に確保することが可能。
Staticが使用できるのはメソッド内のローカル変数とメソッド内のさらに内側のブロックに宣言されたブロックを
スコープする局所的な変数。メンバ変数にはStatic修飾子はつけれない。


基本データ型も、親クラスと言うのが存在して、それはObjectクラスである。

配列
Dim 配列名(index) As 型
注意:要素数は(index + 1)個作られる。

明示的な初期化
Dim X() As Integer = { 100, 200, 300, 400, 500 }

1: Dim D() As Integer '参照型の配列変数のみ確保
2: D = New Integer(4){} '配列の実体を確保

参照型変数 = New 配列要素の型(添え字上限){}
参照型変数 = New 配列要素の型(){ データ1, データ2, データ3, ... }

ReDim宣言
既存の変数に新たな参照先として生成する。
ReDim D(20) <- D = New 型(20)と同じ
Preserve修飾子
ReDim Preserve D(20) <- 新しい配列に既存データをコピーする。

多次元配列
1: Dim T1(2,1) As Integer
2: Dim T2(,) As Integer = { {5,8}, {10,20},{30,40} }
3: Dim T3(,) As Integer
4: T3 = New Integer(2,1){}
5: T1(0,0) = 100
6: T1(0,1) = 200


多段階配列(ジャグ配列)
1: Dim D1()() As Integer
2: D1 = New Integer(2)(){}
3: D1(0) = New Integer(){ 20, 39 } '2 個の要素をもつ配列
4: D1(1) = New Integer(){ 1, 2, 3, 4 } '4 個の要素をもつ配列
5: D1(2) = New Integer(2){} '3 個の要素をもつ配列
6: D1(2)(1) = 20

素数
配列変数名.Length

1: Dim Num As Integer
2: Dim D() As Integer = { 10, 20, 40, 80 }
3: Num = D.Length '要素数 4 が変数 Num に代入される

多次元
1: Dim Num As Integer
2: Dim D(2,3) As Integer '3×4 個の二次元配列
3: Num = D.Length '要素数 12 が変数 Num に代入される

1: Dim Num1, Num2 As Integer
2: Dim D(2,4) As Integer '3×5 個の二次元配列
3: Num1 = D.GetLength(0) '要素数 3 が変数 Num1 に代入される
4: Num2 = D.GetLength(1) '要素数 5 が変数 Num2 に代入される

多段階
1: Dim Num1, Num2, Num3, Num4 As Integer
2: Dim D()() As Integer
3: D = New Integer(2)(){} '最初の段階
4: D(0) = New Integer(){ 20, 39 } '次の段階
5: D(1) = New Integer(){ 1, 2, 3, 4 }
6: D(2) = New Integer(2){}
7: Num1 = D.Length '要素数 3 が Num1 に代入(最初の段階の要素数
8: Num2 = D(0).Length '要素数 2 が Num2 に代入
9: Num3 = D(1).Length '要素数 4 が Num3 に代入
10: Num4 = D(2).Length '要素数 3 が Num4 に代入

キャスト
型にCをつける

1: Dim A As Integer, F As Single = 3.0F
2: A = CInt(F) '変数 F を Integer 型に変換

型変換
Convertクラスを使う
例 String 型を Decimal 型に変換
1: Dim D1 As Decimal, D2 As Decimal, S As String = "102.25"
2: D1 = CDec(S) 'String 型 S のデータを Decimal 型に変換
3: D2 = Convert.ToDecimal(S) 'String 型 S のデータを Decimal 型に変換

例 Integer 型データを String 型に変換
1: Dim A As Integer = 100
2: Dim S As String
3: S = CStr(A)
4: S = Convert.ToString(A)

書式付文字変換
StringクラスFormat()メソッドの使用
1: Dim A As Integer = 1000, B As Integer = 20, C As Integer = 30
2: Dim S As String
3: S = String.Format("Data= {0}, {1}, {2}", A, B, C)
-> S = "Data = 1000, 20, 30" となる

[例] カンマ区切りの変換
3: S = String.Format("Data = {0:#,##0}, A) ' "Data = 1,000"
[例] スペース 7 桁分で表示
3: S = String.Format("Data = {0,7:#,##}", A) ' "Data = 1,000"


形式
{データの特定,桁数:書式}

[例] データ ABC を左詰めで挿入
1: Dim S As String, X As Integer = 1000
2: S = String.Format("Data=[{0,7:#,##0}]", X) '右詰め
3: S = String.Format("Data=[{0,-7:#,##0}]", X) '左詰め


Javaなら
クラス名 大文字スタート
メソッド
変数 小文字スタート

VBは?
同じでおk?
何でもおk?
関数名⇒大文字スタートが多い?
何でもおkなら適当にやるか。(職場によるかも)

メインメソッドは
public shared sub main()
public shared sub main(byval args() as String)

end sub