C#中重载转换运算符语法中一个单词的意思

chenwei1108 2009-07-18 05:21:12
我想知道以下代码
public static implicit operator ConvClass2(ConvClass1 op1)
中的关键字implicit在C#中的释意是什么?
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenwei1108 2009-07-19
  • 打赏
  • 举报
回复
感谢所有朋友的热心帮助。再次感谢!
zhouzangood 2009-07-18
  • 打赏
  • 举报
回复
ding
lc1062 2009-07-18
  • 打赏
  • 举报
回复
implicit 关键字用于声明隐式的用户定义类型转换运算符。如果转换过程可以确保不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。

class Digit
{
public Digit(double d) { val = d; }
public double val;
// ...other members

// User-defined conversion from Digit to double
public static implicit operator double(Digit d)
{
return d.val;
}
// User-defined conversion from double to Digit
public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
class Program
{
static void Main(string[] args)
{
Digit dig = new Digit(7);
//This call invokes the implicit "double" operator
double num = dig;
//This call invokes the implicit "Digit" operator
Digit dig2 = 12;
Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
Console.ReadLine();
}
}
paulin 2009-07-18
  • 打赏
  • 举报
回复
表明定义的类型间可以隐式转换
例子就3楼那样
玖伍叁柒 2009-07-18
  • 打赏
  • 举报
回复
隐式转换的意思,
ConvClass2 n;
ConvClass1 m;
n = m;
这里就用到了你的重载方法了

还有一个explilcit与之相对,是显式转换的意思。
如果是explilcit,那么就要n = (ConvClass2)m;
C#在Microsoft.net初始版本心位置,是Microsoft公司开发的一种最新的面向对象编程语言,它结合了C++的强大功能和Visual Basic的易用性。本书分为三部分来帮助读者学习C#语言。第一部分提供了对C#语言的全面讨论,描述了C#语言里定义的关键字、语句和特性。同时介绍了I/O、文件处理、映射和预处理程序。第二部分讨论了C#类库,它也是.NET框架类库。由于篇幅有限,本书重点讲述了包含在系统名字空间里的核心类库,这部分的内容几乎每个C#程序员都会用到。第三部分包括C#应用的实例。 本书内容由浅及深,适用范围广,同时适用于没有编程经验的读者和对C++或Java有一定基础的程序员。 目录如下: 第一部分 C#语言 第1章 C#的起源 1.1 C#发展史 1.2 C#如何与.NET框架相关 1.3 通用语言运行时工作原理 1.4 可管理代码和不可管理代码 第2章 C#概述 2.1 面向对象程序设计 2.2 第一个简单程序 2.3 处理语法错误 2.4 一点小改进 2.5 第二个简单程序 2.6 另一种数据类型 2.7 两个控制语句 2.8 使用代码块 2.9 分号和定位 2.10 缩进 2.11 标识符 2.12 C#类库 第3章 数据类型、直接量和变量 3.1 数据类型的重要性 3.2 C#的数值类型 3.3 整数类型 3.4 浮点类型 3.5 decimal类型 3.6 字符 3.7 bool类型 3.8 部分输出选项 3.9 直接量 3.10 变量 3.11 变量的作用域和使用期限 3.12 类型转换和强制转换 3.13 表达式的类型转换 第4章 运算符 4.1 算术运算符 4.2 关系运算符和逻辑运算符 4.3 赋值运算符 4.4 位运算符 4.5 ?运算符 4.6 间隔和括号 4.7 运算符优先级 第5章 程序控制语句 5.1 if语句 5.2 switch语句 5.3 for循环 5.4 while循环 5.5 do-while循环 5.6 foreach循环 5.7 使用break语句退出循环 5.8 continue语句 5.9 goto语句 第6章 类、对象和方法 6.1 类基础 6.2 如何创建对象 6.3 引用变量和赋值 6.4 方法 6.5 构造函数 6.6 new运算符 6.7 无用单元收集和析构函数 6.8 this关键字 第7章 数组和字符串 7.1 数组 7.2 多维数组 7.3 非齐整数组 7.4 分配数组引用 7.5 Length属性 7.6 foreach循环 7.7 字符串 第8章 方法和类 8.1 控制对类成员的访问 8.2 给方法传递对象 8.3 ref参数和out参数 8.4 变元个数可变 8.5 返回对象 8.6 方法重载 8.7 重载构造函数 8.8 Main()方法 8.9 递归 8.10 static关键字 第9章 运算符重载 9.1 运算符重载基础 9.2 处理C#内部类型的运算 9.3 重载关系运算符 9.4 重载true和false 9.5 重载逻辑运算符 9.6 转换运算符 9.7 运算符重载提示和限制 9.8 运算符重载的另一个示例 第10章 索引和属性 10.1 索引 10.2 属性 10.3 使用索引和属性 第11章 继承 11.1 继承基础 11.2 成员访问和继承 11.3 构造函数和继承 11.4 继承和名称隐藏 11.5 创建多级层次结构 11.6 何时调用构造函数 11.7 基类引用和派生对象 11.8 虚方法和过载 11.9 使用抽象类 11.10 使用sealed来防止继承 11.11 object类 第12章 接口、结构和枚举 12.1 接口 12.2 使用接口引用 12.3 接口属性 12.4 接口索引 12.5 接口能够被继承 12.6 接口继承引起名称隐藏 12.7 显式实现 12.8 在接口和抽象类选择 12.9 .NET标准接口 12.10 接口的实例研究 12.11 结构 12.12 枚举 第13章 异常处理 13.1 System.Exception类 13.2 异常处理基础 13.3 未捕捉异常的后果 13.4 异常允许合理处理错误 13.5 使用多个catch语句 13.6 捕捉所有异常 13.7 嵌套try模块 13.8 抛出异常 13.9 finally语句 13.10 详细分析异常 13.11 派生异常类 13.12 捕捉派生类异常 13.13 checked语句和unchecked语句 第14章 输入和输出 14.1 C#的I/O依赖于数据流 14.2 数据流类 14.3 控制台I/O 14.4 文件数据流和面向字节文件I/O 14.5 基于字符的文件I/O 14.6 重定向标准数据流 14.7 读写二进制数据 14.8 随机存取文件 14.9 MemoryStream类 14.10 StringReader类和StringWriter类 14.11 将数字串转换为其内部表示 第15章 代理和事件 15.1 代理 15.2 事件 15.3 .NET事件原则 15.4 应用事件:实例研究 第16章 名字空间、预处理程序和程序集 16.1 名字空间 16.2 预处理程序 16.3 程序集和internal访问修饰符 第17章 运行时类型ID、映射和属性 17.1 运行时类型标识 17.2 映射 17.3 使用映射 17.4 属性 17.5 使用内建属性 第18章 不安全代码、指针和其他主题 18.1 不安全代码 18.2 其他关键字 18.3 const和volatile 第二部分 C#类库 第19章 System名字空间 19.1 System的成员 19.2 Math类 19.3 数值类型的结构 19.4 Array类 19.5 BitConverter类 19.6 用Random产生随机数 19.7 内存管理和GC类 19.8 Object类 19.9 IComparable接口 19.10 IConvertible接口 19.11 ICloneable接口 19.12 IFormatProvider接口和IFormattable接口 第20章 字符串和格式化 20.1 C#的字符串 20.2 String类 20.3 格式化 20.4 使用String.Format()和ToString()格式化数据 20.5 创建自定义数字格式 20.6 格式化日期和时间 20.7 格式化枚举 第21章 多线程程序设计 21.1 多线程基础 21.2 Thread类 21.3 确定线程结束时间 21.4 IsBackground属性 21.5 线程优先级 21.6 同步 21.7 使用Wait()、Pulse()和PulseAll()进行线程通信 21.8 MethodImplAttribute属性 21.9 挂起、继续和停止线程 21.10 确定线程状态 21.11 使用主线程 21.12 多线程提示 21.13 开启独立任务 第22章 集合 22.1 集合的概述 22.2 集合接口 22.3 DictionaryEntry结构 22.4 通用集合类 22.5 使用BitArray来存储位 22.6 专用集合 22.7 通过计数器访问集合 22.8 在集合存储用户自定义类 22.9 小结 第23章 通过Internet联网 23.1 System.Net的成员 23.2 统一资源标识符 23.3 Internet访问基础 23.4 处理网络错误 23.5 Uri类 23.6 访问附加的HTTP响应信息 23.7 MiniCrawler:实例研究 23.8 使用WebClient 第三部分 应用C# 第24章 建立组件 24.1 组件的概念 24.2 C#组件的概念 24.3 IComponent接口 24.4 Component类 24.5 一个简单组件 24.6 重载Dispose() 24.7 利用using语句 24.8 容器 24.9 组件是程序设计的未来 第25章 创建基于窗体的Windows应用程序 25.1 Windows程序设计简史 25.2 编写基于窗体的Windows应用程序的两种方式 25.3 Windows与用户交互操作的方法 25.4 Windows窗体 25.5 基于窗体的Windows框架程序 25.6 添加按钮 25.7 消息处理 25.8 使用消息框 25.9 添加菜单 25.10 小结 第26章 递归表达式分析程序 26.1 表达式 26.2 分析表达式:存在的问题 26.3 分析表达式 26.4 剖析表达式 26.5 一个简单的表达式分析程序 26.6 向分析程序添加变量 26.7 递归分析程序语法检查 26.8 一些尝试 附录A XML注释快速参考 附录B C#和机器人技术
基本信息 书名:高等学校计算机应用规划教材:Visual C# 2010程序设计教程 作者: 陈建伟 出版社: 清华大学出版社 页码:326 出版日期:2012-06-01 内容简介   《高等学校计算机应用规划教材:Visual C# 2010程序设计教程》详细介绍了Visual C# 2010程序设计的基础知识、基本方法和应用技巧,共分14章,主要内容包括.NET平台与Visual Studio 2010开发环境、C#语言基础及面向对象程序设计、C#程序设计、C# Web程序设计、C#泛型编程、C#数据库程序设计及ADO.NET等相关知识,并在最后讲解了运用C#处理文件和进行LINQ语言集成查询的内容。   本书的讲述由浅入深、循序渐进,并针对各章知识点附以大量的示例程序和习题。通过本书的学习,读者可以逐步掌握C#程序设计。   本书难度适,实例丰富,可操作性强,可作为高等学校计算机相关专业的教材或参考用书,也可供广大程序员参考。 目录 第1章.NET平台与Visual Studio开发工具 1.1 Microsoft.NET平台 1.1.1 .NET Framework 4.0概述 1.1.2 理解命名空间 1.2 Visual Studio 2010简介 1.2.1 Visual Studio 2010开发环境概览 1.2.2 菜单栏 1.2.3 工具栏 1.2.4 “属性”及“解决方案资源管理器”面板 1.2.5 其他面板 1.2.6 Visual Studio 2010的新特性 1.3 创建控制台应用程序 1.4 本章小结 1.5 习题 第2章 Visual C# 2010语法基础 2.1 C#语言概述 2.2 C#基础元素 2.2.1 语句 2.2.2 标识符与关键字 2.3 变量 2.3.1 变量的命名 2.3.2 变量的声明和赋值 2.4 数据类型 2.4.1 简单类型 2.4.2 结构类型 2.4.3 枚举类型 2.4.4 引用类型 2.4.5 装箱与拆箱 2.4.6 数据类型的转换 2.5 运算符与表达式 2.5.1 赋值运算符与表达式 2.5.2 关系运算符与表达式 2.5.3 逻辑运算符与表达式 2.5.4 其他运算符与表达式 2.5.5 运算符的优先级 2.6 Visual C# 2010的新特性 2.6.1 大整数类型(Biginteger) 2.6.2 动态数据类型 2.6.3 命名参数和可选参数 2.7 本章小结 2.8 上机练习 2.9 习题 第3章 程序流程控制 3.1 选择结构程序设计 3.1.1 if语句 3.1.2 switch语句 3.2 循环结构程序设计 3.2.1 for语句 3.2.2 for each语句 3.2.3 while语句 3.2.4 do---while语句 3.2.5 跳出循环 3.3 异常处理结构 3.3.1 异常的产生 3.3.2 处理异常 3.4 本章小结 3.5 上机练习 3.6 习题 第4章 数组与集合 4.1 数组 4.1.1 数组的声明 4.1.2 -维数组的使用 4.1.3 多维数组的使用 4.2 集合 4.2.1 集合的定义 4.2.2 集合的使用 4.2.3 常用系统预定义的集合类 4.3 本章小结 4.4 上机练习 4.5 习题 第5章 C#面向对象程序设计基础 5.1 面向对象程序设计概述 5.2 类与对象 5.2.1 类与对象概述 5.2.2 面向对象程序设计相关概念 5.2.3 类的声明与System Object类 5.2.4 对象的声明与类的实例化 5.2.5 类成员 5.2.6 类成员的访问限制 5.2.7 this关键字 5.3 构造函数与析构函数 5.3.1 构造函数 5.3.2 析构函数 5.4 本章小结 5.5 上机练习 5.6 习题 第6章 域、属性与事件 6.1 域 6.1.1 域的初始化 6.1.2 只读域与readonly关键字 6.2 属性 6.2.1 属性的声明 6.2.2 属性的访问 6.3 事件 6.3.1 委托 6.3.2 事件的声明 6.3.3 事件的订阅与取消 6.4 本章小结 6.5 上机练习 6.6 习题 第7章 方法 7.1 方法的声明 7.2 方法的参数 7.2.1 值类型参数传递 7.2.2 引用类型参数传递 7.2.3 输出类型参数传递 7.2.4 数组类型参数传递 7.3 静态方法 7.4 方法的重载 7.5 外部方法 7.6 操作符重载 7.6.1 一元操作符的重载 7.6.2 二元操作符的重载 7.7 本章小结 7.8 上机练习 7.9 习题 第8章 继承与多态 8.1 什么是继承 8.2 使用继承机制 8.2.1 基类和派生类 8.2.2 bas

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧