無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

VB.NETをつつく1ーシステムデータタイプ。必要不可欠なものピヨ。

おっはピヨー。予告どおりVB.NET用の初心者用記事も連載するピヨ。
その際、C#との対比がしやすいように、あえてC#の記事の内容と同じにするよ。
見比べたい場合は、ここを使用すると便利だよ。
では始めるよ。準備いいかな?

今日も元気にプログラミングしよう。このサイトのメイン記事はディープなものだけど、 もっと多くの人に楽しんでもらうために基礎部分を書くことにしたピヨ。
僕も完璧じゃないから基礎の復習の意味合いもかねているからこっちもどんどん書くよ。
これから連載する一連のVB.NETの記事をマスターしたらCPUのシミュレートとか色々楽しめること間違いなし! VB.NET初心者の人も僕と一緒に楽しもう。
じゃあ早速、VB.NETの基礎を復習/学習しよう。
プログラミング言語を学ぶ際に最初にするべきなのは、hello worldプログラムを書くことと、 言語が持つ基礎的な型を学ぶことなんだ。 では、早速次のプログラムを実行してみて。
Imports System
Imports System.IO
Imports System.Reflection

Module Module1

    Sub Main()
        Dim file As FileStream = New FileStream( _
            "型の最小値と最大値.txt", FileMode.OpenOrCreate)
        Dim writer As StreamWriter = New StreamWriter(file)
        Dim types As Type() = {GetType(SByte), GetType(Byte), _
            GetType(Short), GetType(Short), _
            GetType(Integer), GetType(UInteger), _
            GetType(Long), GetType(ULong), _
            GetType(Single), GetType(Double), _
            GetType(Decimal)}
        For Each t As Type In types
            ShowType(t, writer)
        Next
        writer.Close()
    End Sub

    Sub ShowType(ByVal type As Type, ByVal writer As StreamWriter)
        Dim max As FieldInfo = type.GetField("MaxValue")
        Dim min As FieldInfo = type.GetField("MinValue")
        Dim str As String = String.Format( _
            "型【{0}】の最大値は【{1}】:最小値は【{2}】です。", _
            type.FullName, max.GetValue(Nothing), min.GetValue(Nothing))
        Console.WriteLine(Str)
        writer.WriteLine(Str)
    End Sub

End Module
今回は何が書いてあるかは気にしないで、実行結果だけ見てね。 そうすれば、VB.NETの型名が違う事最小値と最大値が違う事がわかると思う。 多分なんで型名が二つもあるの?と気になる人がいると思う。それは、VB.NETの実行環境であるCLR複数のプログラム言語に対応しているからなんだ。 複数の言語に対応するためには、基礎的な型はあわせなくてはならない、だけど既存の言語を使っている人は困るからVB.NET独自の型名とCRLが考えている型名が違うピヨね。
次に何で最大値と最小値がそれぞれ違うのかということだけど、それは効率性の問題なんだ。いつも64ビットの値を使っていれば、少しの数値範囲しか使わない時もったいないよね?それに、後からより大きな数値を扱いたい場合困るよね。 だから全てのプログラム言語は性質に合わせて複数の基礎的な型を用意しているんだ。 おっと、忘れるところだった。
サンプルプロプログラムの型以外にも後数個あって、
trueとfalseの2つしか値がないBoolean(System.Boolean)型、
Unicode文字1つを表すChar(System.Char)型、
char型が複数ある文字列を表すString(System.String)型、
全ての型の始祖であるObject(System.Object)型があるよ。
まだ良くわからないところがあると思うけど、これからの記事で実際に扱っている所を見たら判るようになるよ。だから焦らない焦らない。硬くならないで気楽に読んでね。
じゃあ、近いうちにまた合おう。バイバイ。また来てね。
別窓 | VB.NET | コメント:0 | トラックバック:0 | ∧top | under∨
<<VB.NETをつつく2ー変数。人間中身が大事。 | 無差別に技術をついばむ鳥 | C#をつつく9ー列挙体。数字に名前をつけよう。>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |