c#中通过自定义隐式转换实现返回值重载
2008-11-11 11:35
417 查看
using System;
using System.Collections.Generic;
using System.Text;
namespace CountStrDemo
{
class 返回值重载
{
public static void Main(string[] args)
{
//您看看这调用处,那叫一个完美
MyReturnDemo obj = new MyReturnDemo( "aladdin" , 22 );
int i = obj.GetInfo();
string str = obj.GetInfo();
Console.WriteLine( i.ToString() );
Console.WriteLine( str );
Console.ReadLine();
}
}
class MyReturnDemo
{
public string name;
public int age;
public MyReturnDemo(string name, int age)
{
this.name = name;
this.age = age;
}
private string ReturnByString()
{
return "姓名 :" + this.name ;
}
private int ReturnByInt()
{
return this.age;
}
public MyStructTemp GetInfo()
{
return new MyStructTemp( this );
}
//结构,用做中间处理.
public struct MyStructTemp
{
private MyReturnDemo stuobj;
public MyStructTemp( MyReturnDemo obj )
{
this.stuobj = obj;
}
public static implicit operator string( MyStructTemp obj )
{
return obj.stuobj.ReturnByString();
}
public static implicit operator int( MyStructTemp obj )
{
return obj.stuobj.ReturnByInt();
}
}
}
}
using System.Collections.Generic;
using System.Text;
namespace CountStrDemo
{
class 返回值重载
{
public static void Main(string[] args)
{
//您看看这调用处,那叫一个完美
MyReturnDemo obj = new MyReturnDemo( "aladdin" , 22 );
int i = obj.GetInfo();
string str = obj.GetInfo();
Console.WriteLine( i.ToString() );
Console.WriteLine( str );
Console.ReadLine();
}
}
class MyReturnDemo
{
public string name;
public int age;
public MyReturnDemo(string name, int age)
{
this.name = name;
this.age = age;
}
private string ReturnByString()
{
return "姓名 :" + this.name ;
}
private int ReturnByInt()
{
return this.age;
}
public MyStructTemp GetInfo()
{
return new MyStructTemp( this );
}
//结构,用做中间处理.
public struct MyStructTemp
{
private MyReturnDemo stuobj;
public MyStructTemp( MyReturnDemo obj )
{
this.stuobj = obj;
}
public static implicit operator string( MyStructTemp obj )
{
return obj.stuobj.ReturnByString();
}
public static implicit operator int( MyStructTemp obj )
{
return obj.stuobj.ReturnByInt();
}
}
}
}
相关文章推荐
- c#实现隐式的用户自定义类型转换(关键字implicit operator)
- C#通过IConvertible接口来实现自定义类型转换和计算
- C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
- More Effective C++之Item M21:通过重载避免隐式类型转换
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- 通过重载避免隐式类型转换
- 通过c# 实现自定义属性改变触发自定义事件 ,理解自定义事件及其触发过程
- C#中的不同类型之间的显式与隐式转换实现
- C++惯用法:通过成员模板实现隐式转换(Coercion by Member Template)
- c#实现显式的用户自定义类型转换(关键字explicit operator)
- C# 自定义ORM 以及 通过委托实现事务(第一版)
- More Effective C++----(21)通过重载避免隐式类型转换
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
- c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast
- 通过C#实现发送自定义的html格式邮件
- C# 通过反射获取MVC Controller里的类名,方法名,参数列表,返回值类型,Description描述,自定义Attribute
- C++惯用法:通过成员模板实现隐式转换(Coercion 强迫 by Member Template)
- C# 自定义类型通过实现IFormattable接口,来输出指定的格式和语言文化的字符串(例:DateTime)
- C#通过引用Office Excel (2007) 组件实现对Excel文件的操作
- 函数多个返回值(返回多个参数/局部变量)通过双重指针来实现