RSS

C#: implicit

23 11月

 

using System;

public class Program
{
 public static void Main()
 {
 ConstInt ci = new ConstInt(4096);
 int i = ci;        // 明示的なキャストは不要
 Console.WriteLine(i);

 ConstFloat cf = new ConstFloat(4.096f);
 float f = (float)cf;    // 明示的なキャストが必要
 Console.WriteLine(f);
 }
}

class ConstInt
{
 private static int i;

 public ConstInt(int n)
 {
 i = n;
 }

 // implicitで変換演算子を定義
 public static implicit operator int(ConstInt m)
 {
 return i;
 }
}


class ConstFloat
{
 private static float f;

 public ConstFloat(float n)
 {
 f = n;
 }

 // explicitで変換演算子を定義
 public static explicit operator float(ConstFloat m)
 {
 return f;
 }
}

 
コメントする

投稿者: : 2010/11/23 投稿先 C#

 

タグ: , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中