C#语言学习之旅(5)--运算符和类型强制转换
2011-05-25 22:32
441 查看
本章节主要来讲解关于运算和类型转换的一些问题。
5.1 条件运算符
条件运算符(?:)也成为三元运算符,也就是if..else结构的简化形式。其语法:condition? true_value:false_value下面给出列子来
显式隐式demousing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SimpleCurrency
{
struct Currency
{
public uint Dollars;
public ushort Cents;
public Currency(uint dollars,ushort cents)
{
this.Dollars = dollars;
this.Cents = cents;
}
public override string ToString()
{
return string.Format("${0}.{1,-2:00}",Dollars,Cents);
}
//implicit转换
public static implicit operator float (Currency value)
{
return value.Dollars + (value.Cents / 100.0f);
}
//explicit转化
public static explicit operator Currency(float value)
{
checked
{
uint dollars = (uint)value;
ushort cents = Convert.ToUInt16((value - dollars) * 100);
return new Currency(dollars, cents);
}
}
}
class Program
{
static void Main(string[] args)
{
Currency balance = new Currency(100, 50);
float f = balance;
Console.WriteLine(balance.ToString());
Console.WriteLine(f.ToString());
float amount = 56.44f;
Currency amount2 = (Currency)amount;//显式转换
//Currency amount2 = amount;//错误
Console.WriteLine(amount2.ToString());
}
}
}代码下载: CShrap第五章
小结:本章节就写到这里,下一章节讲详细讲解有关事件和委托问题
5.1 条件运算符
条件运算符(?:)也成为三元运算符,也就是if..else结构的简化形式。其语法:condition? true_value:false_value下面给出列子来
显式隐式demousing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SimpleCurrency
{
struct Currency
{
public uint Dollars;
public ushort Cents;
public Currency(uint dollars,ushort cents)
{
this.Dollars = dollars;
this.Cents = cents;
}
public override string ToString()
{
return string.Format("${0}.{1,-2:00}",Dollars,Cents);
}
//implicit转换
public static implicit operator float (Currency value)
{
return value.Dollars + (value.Cents / 100.0f);
}
//explicit转化
public static explicit operator Currency(float value)
{
checked
{
uint dollars = (uint)value;
ushort cents = Convert.ToUInt16((value - dollars) * 100);
return new Currency(dollars, cents);
}
}
}
class Program
{
static void Main(string[] args)
{
Currency balance = new Currency(100, 50);
float f = balance;
Console.WriteLine(balance.ToString());
Console.WriteLine(f.ToString());
float amount = 56.44f;
Currency amount2 = (Currency)amount;//显式转换
//Currency amount2 = amount;//错误
Console.WriteLine(amount2.ToString());
}
}
}代码下载: CShrap第五章
小结:本章节就写到这里,下一章节讲详细讲解有关事件和委托问题
相关文章推荐
- C#语言学习之旅(5)--运算符和类型强制转换
- C#学习记录 运算符与类型的强制转换
- C#语言学习--基础部分(十二) --堆,栈,装箱,拆箱,安全数据类型转换:as, is
- 【Professional C# 读书笔记】(二)-----语言基础:继承,运算符,类型转换的杂七杂八
- [C#] as 和 is 运算符以及安全的类型强制转换
- 【Professional C# 读书笔记】(二)-----语言基础:继承,运算符,类型转换的杂七杂八
- C#学习2——数组、运算符与类型转换
- [C#] as 和 is 运算符以及安全的类型强制转换
- 《C#高级编程》【第7章】运算符与类型强制转换 -- 学习笔记
- C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换
- 6_C# 高级编程(第六版)学习笔记——第6章 运算符和类型强制转换
- 《csharp高级编程》 学习笔记 第六章 运算符和类型强制转换
- c++学习-类型转换运算符
- C#运算符与数据类型转换
- C#学习第三天 类型转换和随机数
- 如果类型转换无可避免,那么应该尽可能用as运算符,而不是强制转换
- 2、C#基础整理(运算符、数据类型与转换、var关键字)
- C#学习日记17---显示类型转换具体用例
- 17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)
- C#语言中提供了枚举和整型之间的强制转换功能