using System;
class SampleClass
{
string n;
int a;
public SampleClass(string name, int age)
{
this.n = name;
this.a = age;
}
public void printOut()
{
Console.Write("{0} ",this.n);
Console.WriteLine(this.a);
}
/*
public static explicit operator SampeClass(string name)
{
return new SampleClass(name, 0);
}
*/
public static explicit operator SampleClass(int age)
{
return new SampleClass("Kamimura",age);
}
/* string型をSampleClass型に明示的に
* (暗黙的にも)型変換出来ないことがわかったので
* コメントに
public static implicit operator SampleClass(int age)
{
return new SampleClass("Kamimura", age);
}*/
public static implicit operator SampleClass(string name)
{
return new SampleClass(name,1);
}
}
class MainClass
{
static void Main()
{
/* string型をSampleClass型に
* 変換することは出来ないみたい
* なのでコメントに */
// SampleClass s1=(SampleClass)"Kamimura";
// 明示的に型変換
SampleClass s2 = (SampleClass)0;
// 出力値:Kamimura 0
s2.printOut();
// 暗黙的に型変換
SampleClass s3 = "Kamimura1";
// 出力値:Kamimura1 1
s3.printOut();
}
}
0 コメント:
コメントを投稿