int型、string型をそれぞれexplicitキーワード、implicitキーワードを使用し定義したSampleClass型に変換してみる。
using System;
class SampleClass
{
// 変数の宣言
int n;
string s;
public SampleClass(int n, string s)
{
this.n = n;
this.s = s;
}
public void display()
{
Console.WriteLine(this.n);
Console.WriteLine(this.s);
}
/* int型をexplicitキーワードを使用して
* SampleClass型に変換 */
public static explicit operator SampleClass(int n)
{
return new SampleClass(n, "explicit");
}
/* string型をimplicitキーワードを使用して
SampleClass型に変換 */
public static implicit operator SampleClass(string s)
{
return new SampleClass(1, s);
}
}
class MainClass
{
public static void Main()
{
SampleClass a = (SampleClass)10;
// 出力値:10 explicit
a.display();
SampleClass b = "implicit";
// 出力値:1 implicit
b.display();
}
}
0 コメント:
コメントを投稿