(型名)の部分はクラス型、構造体またはネームスペースである必要があります。
別名で型を定義したいことがあります。
C#ではusingを使うと型の別名を定義できます。クラスの内側ではなく外側で定義する必要があります。
using (定義したい型名) = (型名)
using MyFlag = Int32;
using STATUS_CODE = String;
System.Int32
構造体のエイリアスとなります。
また、Stringと記述した場合はSystem.String
クラスのエイリアスとなり、コンパイルできます。int
string
と記述した場合は型名となるため、CS1001:識別子がありません
エラーが発生しコンパイルできません。using MyFlag = int;
using MyFlag = string;
C# 4.0以降ではnamespaceの外側に記述する必要があります。
using HANDLE = System.IntPtr;
namespace GetSetSystemTimeDemo
{
public partial class Form1 : Form
{
...
}
}
下図のUIを作成します。フォームにボタンを1つ配置します。
下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace UsingTypeDefinition
{
using HANDLE = System.IntPtr;
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
HANDLE myhandle = this.Handle;
MessageBox.Show(myhandle.ToString());
}
}
}
System.IntPtr型の別名をHANDLEという名称で定義します。
using HANDLE = System.IntPtr;
HANDLE型の変数 myhandle に Form.Handleプロパティの値を代入します。 Handle プロパティの値はSystem.IntPtr のため、System.IntPtr の別名である HANDLE型にもキャストや変換処理をせず代入できます。
HANDLE myhandle = this.Handle;
MessageBox.Show(myhandle.ToString());
上記のプロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。下図のダイアログが表示され、FormMainのHandleの値が表示されます。