手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#用户定义类型转换详解
C#用户定义类型转换详解
摘要:C#用户定义类型转换•用于自定义类和结构能够进行隐式转换和显示转换.例如:将一个自定义类类型转换成整型,浮点型等,反之亦然.C#...

C#用户定义类型转换

•用于自定义类和结构能够进行隐式转换和显示转换.例如:将一个自定义类类型转换成整型,浮点型等,反之亦然.

C#提供隐式转换和显式转换

•隐式转换:编译器自动执行转换

•显式转换:编译器只在使用显式转换运算符时才执行转换

声明隐式转换的语法如下.注:所有用户定义转换必须使用public和static修饰符

复制代码 代码如下:

public static implicit operator TargetType(SourceType Identifier)

{

...

return ObjectOfTargetType;

}

TargetType:目标类型

参数Identitfier:源数据

例如,下面代码使一个int字面量被隐式转换为LimitedInt对象,反过来LimitedInt也可以隐式转换成一个int

复制代码 代码如下:

class LimitedInt

{

const int MaxValue = 100;

const int MinValue = 0;

private int _theValue = 0;

//属性

public int TheValue

{

get { return _theValue; }

set

{

if (value < MinValue)

{

_theValue = 0;

}

else

{

_theValue = value > MaxValue ? MaxValue : value;

}

}

}

//隐式转换:将LimitedInt对象转为整型

public static implicit operator int(LimitedInt li)

{

return li.TheValue;

}

//隐式转换:将整型转换为LimitedInt对象

public static implicit operator LimitedInt(int x)

{

LimitedInt li = new LimitedInt();

li.TheValue = x;

return li;

}

}

class Program

{

static void Main(string[] args)

{

LimitedInt li = 500; //将500转换为LimitedInt

int value = li; //将LimitedInt转换为int

Console.WriteLine("li:{0},value:{1}", li.TheValue, value);

Console.ReadKey();

}

改代码输出结果:li:100,value:100

显示转换和强制转换运算符

前面所讲的都是隐式转换,如果你把运算符implcit改为explicit,你将不得不在实行转换时显示使用转换运算符

代码片段如下:

复制代码 代码如下:

//显示转换:将LimitedInt对象转为整型

public static explicit operator int(LimitedInt li)

{

return li.TheValue;

}

//显示转换:将整型转换为LimitedInt对象

public static explicit operator LimitedInt(int x)

{

LimitedInt li = new LimitedInt();

li.TheValue = x;

return li;

}

static void Main(string[] args)

{

LimitedInt li = (LimitedInt)500; //将500强制转换为LimitedInt

int value = (int)li; //将LimitedInt强制转换为int

Console.WriteLine("li:{0},value:{1}", li.TheValue, value);

Console.ReadKey();

}

【C#用户定义类型转换详解】相关文章:

C#方法的总结详解

C#随机生成Unicode类型字符串

C#基础继承和多态详解

C#版ftp方法实现类的代码

C#词法分析器之转换DFA详解

c# 随机函数的使用详解

c# 类型转换

C#.net中的类型转换详细介绍

浅析C#数据类型转换的几种形式

C#实现任意数据类型转成json格式输出

精品推荐
分类导航