VB6開発者向け:C#で始める.NETプログラミング

第5回 C#のコードに移植する

この記事を読むのに必要な時間:およそ 11 分

各部詳細について

ここではC#特有の記述に関してをご説明します。 VB6のコードと見比べた時,単純にはご理解いただけないであろう部分のみご説明して行きたいと思います。

using

先頭のusing句から始まる記述ですが,このほとんどは最初から記述されており,今回移植するにあたって追記したのは「// 追加」とコメントした行のみです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;    // 追加
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

usingの後に記述されているSystem.~ですが,これらは名前空間です。 このように記述することで,これらの名前空間に属する型名は,名前空間を省略して記述することができます。

例えば,サンプルコードで記述しているクラスはFormというクラスを継承しています。

public partial class Form1 : Form

このクラスは,System.Windows.Forms.Formのように名前空間を含めて記述するのが正式な表記ですが,単純にFormとだけ記述できるのは,⁠using System.Windows.Forms;」と記述されているためです。

///<summary></summary>

「//」のようにスラッシュを2つ重ねると,これを記述した後は行末まで単なるコメントとして扱われます。

「///」のようにスラッシュを3つ重ねるとドキュメンテーションコメントになります。

例えば,⁠private bool AddRecord(int code)」のように記述されているメソッド名の上の行に///と入力すると,自動的に以下の行が追加されます。

/// <summary>
/// 
/// </summary>
/// <param name="code"></param>
/// <returns></returns>

ここに対して,以下のように各タグに対する情報を入力します。

/// <summary>レコードを追加します</summary>
/// <param name="code">番号</param>
/// <returns>結果 [True:成功 / False:失敗]</returns>

こうすることで,ここに記述された内容をXMLファイルに書き出すことができるようになります。 また,C#のコードエディタ上でAddRecordメソッドを呼び出している部分にマウスカーソルを当てると,ここに記述された文字がヒントとして表示されます。

private const string FILENAME = @"c:\Database.mdb";

C#では,エスケープシーケンスを文字列定数に含めることができます。 例えば,"ABC\tDEF" と記述するとABCとDEFの間にタブが含まれることになります。

サンプルコードでは,上記のように「@」が先頭付加されています。 このように書くことで,エスケープシーケンスの使用を避けることができます。

if (!AddLogic()) return;

if文は,以下のように「{}」を用いて記述しますが,1命令で済んでしまう場合は,上記のように条件式の後ろに続けて記述することもできます。 また「!」は,VB6のNotと同じ意味になります。

if ()
{
    // ここに真の場合に実行される命令を記述する
}
else
{
    // ここに偽の場合に実行される命令を記述する
}

メソッドから抜けたい場合はreturnを記述します。 上記は,戻り値がない(void)メソッドの場合です。

戻り値がある場合は,戻り値の型に準じて,例えばint型なら「return 0」のようにreturnの後に戻り値を指定します。

以上によって,上記は「AddLogic() メソッドの戻り値が False ならメソッドから抜けなさい」という意味になります。

著者プロフィール

伊藤達也(いとうたつや)

(株)井沢電器設備にて、業務管理システムの開発に従事しています。 この記事の趣旨通り、筆者自身が2005年後半にメインの開発言語をVB6からC#に移行し、2007年には Microsoft MVPアワードをC#で受賞しました。