http://www.cnblogs.com/MigCoder/p/3500747.html
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WPF_fist.MyClass
{
class Foo
{
private string TestString()
{
return "I'm a string";
}
private int TestInt()
{
return 100;
}
public TestHelper Test()
{
//返回一个TestHelper对象,由该对象去隐式转换目标值
return new TestHelper(this);
}
public struct TestHelper
{
Foo m_host;
public TestHelper(Foo host)
{
m_host = host;
}
//实现TestHelper与int的隐式转换
public static implicit operator int(TestHelper helper)
{
return helper.m_host.TestInt();
}
//实现TestHelper与string的隐式转换
public static implicit operator string(TestHelper helper)
{
return helper.m_host.TestString();
}
}
}
}
MyClass.Foo Foo = new MyClass.Foo();
int i = Foo.Test();
string str= Foo.Test();