全ては時の中に…

システム開発全般の技術や開発に役立つツール、プログラミングのサンプルを紹介しています。

データ型

【VB.NET】指定したデータ型に変換する

通常、指定したオブジェクト(値)を指定した型に変換するには、キャスト(型変換)を利用します。
キャストには、CInt(CStrやCDec等)、CType、DirectCast、System.Convertクラスのメソッド等を利用する方法があります。
これらのキャストは、変換前後のデータ型が分かっており、明示的に変換することができます。
しかし、変換後のデータ型が分からず、設定するオブジェクトのデータ型に合わせて設定したいことがあります。
このような場合のキャストについて説明します。

System.ConvertクラスのChangeTypeメソッドを利用すると、第1引数に指定した値を第2引数に指定したデータ型の値に変換します。
第2引数のデータ型は、TypeCode型で指定するため、設定対象のオブジェクトの型を指定することで、適切な値に変換することが出来ます。
(CType等は、Type型で指定します。そのため、Typeオブジェクトを利用した変換する型が動的に変化するキャストが出来ません)

以下、サンプル。
続きを読む

【VB.NET】拡張メソッドを利用する

VB 2008から拡張メソッドという機能が提供されています。
この拡張メソッドの実装方法について説明します。

拡張メソッドを利用すると、モジュール(Module)に記述した関数を指定したデータ型のオブジェクトのメソッドとして利用することができます。
拡張するデータ型の指定は、最初のパラメータのデータ型となります。

Form型のオブジェクトにWriteName()というメソッドを追加する場合を例として説明します。

以下、サンプル。
続きを読む

【C#】オブジェクトのデータ型をチェックする

記事「【VB.NET】オブジェクトのデータ型をチェックする」をC#で実現する方法について説明します。
C#では、VB.NETと異なり、TypeOfが不要です。
そのため、以下の構文となります。

《構文》
if(変数名 Is データ型){
'データ型が一致する場合
}else{
'データ型が一致しない場合
}

以下、サンプル。
続きを読む

【VB.NET】オブジェクトのデータ型をチェックする

記事「【VB.NET】フォームに配置したコントロールの値を初期化する」でも少し触れていますが、VB.NETでデータ型をチェックする方法について説明します。
データ型をチェックするには、以下の構文を利用します。

《構文》
If TypeOf 変数名 Is データ型 Then
'データ型が一致する場合
Else
'データ型が一致しない場合
End If


以下、サンプル。
続きを読む

【VB.NET】ジェネリックで指定した型を取得する

以前、Object型の変数のデータ型を調べる方法を紹介しました。
(詳細は、記事「以前の記事「【VB.NET】Object型の変数が参照しているデータ型を調べる」を参照)
これの応用でジェネリックで指定したデータ型を取得する方法について説明します。
ジェネリックで指定した型を取得するには、GetGenericArgumentsプロパティを利用します。

以下、サンプル。
続きを読む

【SQL Server】データ型の一覧を取得する

SQL Serverの項目に指定できるデータ型の一覧を取得する方法について説明します。データ型の一覧を取得する方法には、以下の3種類があります。

1.システムビュー(systypes)を利用する
2.カタログテーブル(Sys.Types)を利用する
3.アンドキュメンテッド ストアドプロシージャを利用する

以下、サンプル。
続きを読む

【VB.NET】Object型の変数が参照しているデータ型を調べる

VB.NETで汎用データ型(Object)の変数を利用した場合、変数が現在参照しているデータ型が何かを調べたいことがあります。
この方法について、説明します。

変数が参照しているデータ型を調べるには、以下の方法があります。
 1.System.TypeクラスのGetTypeCodeメソッドを利用する
 2.TypeName関数を利用する

以下、サンプルです。
続きを読む

【PowerShell】データ型の変換

PowerShellで明示的に扱うデータ型を指定する場合には、キャストを利用する。
キャストの指定方法は、以下の2種類がある。
 1.型演算子の「-as」を利用する。
 2.「[データ型] 値」を利用する。

以下、サンプル。
続きを読む

【PowerShell】データ型の確認

PowerShellでも、VB.NETの「Type...Ofステートメント」のように扱っている変数のデータ型を確認することができる。
それには、「-is」や「-isnot」のように型演算子と呼ばれる演算子を利用する。
以下、サンプル。
続きを読む

【VB.NET】.NET Framework2.0のジェネリックを理解する

ジェネリックは、.NET Framework2.0から追加された機能であり、以下のような特徴を持つ。
 ・クラスの宣言時には、データ型を特定しない。
  → データ型の数だけコードを用意しなくても良い。
    ※データ型別に同じ処理を複数用意する必要があった。
 ・データ型の指定は、変数宣言時に以下のように行う。
   Dim wkList As New List(Of String)
  → (Of データ型)で変数のデータ型を指定する。

ジェネリックを利用する場合には、ArrayListの代わりにListを利用する。
(Listは、ジェネリックを利用して定義されている)

以下、従来の指定方法とジェネリックの違いを確認するためのサンプル。
続きを読む

【VB.NET】MarshalAsを利用した属性の適用

以前の記事「【VB.NET】Windows APIの利用」に関連した内容で、Windows APIを利用する場合、APIの引数に適切なデータ型を指定する必要がある。
しかし、Windows APIで利用するデータ型が、VB.NETのデータ型と一致しない場合があり、VB.NETが提供するデータ型では対応しきれない。
(String型の扱いやポインタ型のオブジェクトの指定 等)
このような問題を解決するための手段として、Windows APIの実行時に適切なデータ型に変換する機能がある。
それが、MarshalAs属性を利用したデータ型の変換となる。

以下、サンプル。
続きを読む

【VB.NET】Win32APIを利用する

VB.NETを使っていても、Win32 APIを利用しなければならないことがある。
この場合、Win32 APIについて調べることになるが、以下の情報を調べると良い。
 ・MSDNライブラリの「Win32およびCOM開発
 ・Visual Basic 5用のWin32 APIの宣言一覧のテキストファイル
  →KB178020からダウンロードできる(※1)。
   但し、VB.NET用にデータ型などの書き換えが必要になる。

Visual Basic 6以前のバージョンとVB.NETでは、Win32 APIの宣言に若干の違いがある。
それは、以下の通りである。
続きを読む

【VB.NET】数値型の演算処理時間について

記事「【VB.NET】データ型による計算速度の違い」の続きで、速度に違いがでる理由について説明する。
プリミティブ型とは、ALU(中央演算装置)が演算し易いように決められた型として定義されたデータ型である。
それに対し、Decimal型は、コンピュータが苦手な10進数での演算を正確に行うために用意されたデータ型である。
(正確には、Decimal型は、String型と同様にクラスとして定義されている)
そのため、演算にかかる処理時間に差が出る。

以下の環境で、100,000までの素数を取得するプログラムを実行した場合の処理時間は、以下の通り。
続きを読む
Recent Comments
Recent TrackBacks
Profile

ふりっつ

システムエンジニア
取得資格:
 ソフトウェア開発技術者
 MCP(70-290)
メールマガジン:
 【出張版】全ては時の中に…

メールマガジン
メルマガ登録・解除
【出張版】全ては時の中に…
 
 powered by メルマガスタンドmelma! トップページへ
ブログランキング
アクセス解析出会い




にほんブログ村 IT技術ブログへ

にほんブログ村 IT技術ブログ プログラム・プログラマへ

Amazon
スポンサー
HonyaClub.com

PCDEPOT WEB本店/OZZIO

FUJIFILMMALL(フジフイルムモール)

IT 関連資格ならクラムメディア問題集

  • ライブドアブログ