CLR用户自定义类型中的操作符重载

bala7229291 2011-09-14 09:50:58
我用C#写了一个CLR 用户自定义类型 ,假设数据类型名为 type1
我同时写了这种数据类型加法的实现方法 addtype1()

不谈建立CLR类型的过程,最后我在查询处理器里使用addtype1()方法是没有任何问题
假如
declare @a type1;
declare @b type1;

set @a = 1;
set @b = 1;

select @a + @b;

查询处理器提示:运算符对数据类型无效。运算符为 add,类型为 type1。

我考虑应该是操作符重载的问题,于是我到C#下重新写了一个操作符重载
public static type1 operator+ (type1 a, type b)
{... ...}

并且在C#下运行没问题
如在C#中:
type1 a = new type1() ; type b = new type1();
return type1 c = a + b; 这样已经成功运行

可是更新程序集到SQL Server后,执行select @a + @b 还是提示:运算符对数据类型无效。运算符为 add,类型为 type1

请问高手要怎么解决,是否不能使用C#里的操作符重载来实现SQL Server里的操作符重载,那怎么实现我想要的效果。
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixuyue 2011-09-15
  • 打赏
  • 举报
回复
select @a + @b
这句话不是cls执行吧,是由sql执行;
sql又不知道你定义了新类型
Suriyel 2011-09-15
  • 打赏
  • 举报
回复
围观学习
C#中有些东西是集成的,CLR没有直接对应项。
bala7229291 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feixuyue 的回复:]
select @a + @b
这句话不是cls执行吧,是由sql执行;
sql又不知道你定义了新类型
[/Quote]
SQL Server肯定知道我定义了新类型的,我已经在SQL Server里注册了CLR程序集了,这是我在sql里执行时返回的错误信息:

消息 403,级别 16,状态 1,第 3 行
运算符对数据类型无效。运算符为 add,类型为 ComplexNumber。

我的分析是sql是知道自定义的类型了,但是它要寻找一个匹配类型的方法,我顺着这条思路使用了C#的重载运算符,结果不行,我也搞不清楚
第1章 概述 1 1.1 精心设计的框架所具备的品质 2 1.1.1 精心设计的框架是简单的 2 1.1.2 精心设计的框架设计代价高 3 1.1.3 精心设计的框架充满利弊权衡 3 1.1.4 精心设计的框架应该借鉴过去 4 1.1.5 精心设计的框架要考虑未来发展 4 1.1.6 精心设计的框架应具有良好的集成性 4 1.1.7 精心设计的框架是一致的 4 第2章 框架设计基础 6 2.1 渐进框架 7 2.2 框架设计的基本原则 10 2.2.1 场景驱动设计的原则 11 2.2.2 低门槛原则 17 2.2.3 自说明对象模型原则 20 2.2.4 分层架构原则 25 2.3 小结 27 第3章 命名规范 28 3.1 大小写约定 29 3.1.1 标识符的大小写规则 29 3.1.2 首字母缩写词的大小写 31 3.1.3 复合词和常用术语的大小写 33 3.1.4 是否区分大小写 35 3.2 通用命名约定 35 3.2.1 单词的选择 36 3.2.2 使用单词缩写和首字母缩写词 37 3.2.3 避免使用语言特有的名字 38 3.2.4 为已有API的新版本命名 39 3.3 程序集和DLL的命名 42 3.4 名字空间的命名 43 3.5 类、结构和接口的命名 47 3.5.1 泛型类型参数的命名 49 3.5.2 常用类型的命名 50 3.5.3 枚举类型的命名 51 3.6 类型成员的命名 53 3.6.1 方法的命名 53 3.6.2 属性的命名 54 3.6.3 事件的命名 55 3.6.4 字段的命名 57 3.7 参数的命名 57 3.8 资源的命名 58 3.9 小结 59 第4章 类型设计规范 60 4.1 类型和名字空间 62 4.2 类和结构之间的选择 67 4.3 类和接口之间的选择 69 4.4 抽象类的设计 76 4.5 静态类的设计 78 4.6 接口的设计 79 4.7 结构的设计 81 4.8 枚举的设计 83 4.8.1 标记枚举的设计 89 4.8.2 给枚举添加值 93 4.9 嵌套类型 94 4.10 小结 96 第5章 成员设计 97 5.1 成员设计的一般规范 97 5.1.1 成员重载 97 5.1.2 显式地实现接口成员 102 5.1.3 属性和方法之间的选择 106 5.2 属性的设计 112 5.2.1 索引属性的设计 113 5.2.2 属性改变的通知事件 115 5.3 构造函数的设计 117 5.4 事件的设计 123 5.5 字段的设计 130 5.6 操作符重载 132 5.6.1 重载operator== 136 5.6.2 类型转换操作符 136 5.7 参数的设计 138 5.7.1 枚举和布尔参数之间的选择 140 5.7.2 参数的验证 142 5.7.3 参数的传递 145 5.7.4 参数数量可变的成员 147 5.7.5 指针参数 150 5.8 小结 152 第6章 为扩展性而设计 153 6.1 扩展机制 153 6.1.1 非密封类 153 6.1.2 保护成员 155 6.1.3 事件与回调函数 156 6.1.4 虚成员 158 6.1.5 抽象(抽象类型与抽象接口) 160 6.2 基类 162 6.3 密封 163 6.4 小结 166 第7章 异常 167 7.1 抛出异常 171 7.2 为抛出的异常选择合适的类型 175 7.2.1 错误消息的设计 176 7.2.2 异常处理 177 7.2.3 对异常进行封装 182 7.3 标准异常类型的使用 184 7.3.1 Exception与SystemException 184 7.3.2 ApplicationException 184 7.3.3 InvalidOperationException 184 7.3.4 ArgumentException、ArgumentNullException及ArgumentOutOfRangeException 185 7.3.5 NullReferenceException、IndexOutOfRangeException及AccessViolationException 186 7.3.6 StackOverflowException 186 7.3.7 OutOfMemoryException 187 7.3.8 ComException、SEHException及其他CLR异常 188 7.3.9 ExecutionEngineException 188 7.4 自定义异常的设计 188 7.5 异常与性能 190 7.5.1 Tester-Doer模式 190 7.5.2 Try-Parse模式 191 7.6 小结 192 第8章 使用规范 193 8.1 数组 193 8.2 attribute 195 8.3 集合 198 8.3.1 集合参数 199 8.3.2 集合属性与返回值 200 8.3.3 数组与集合之间的选择 204 8.3.4 自定义集合的实现 205 8.4 ICloneable 207 8.5 IComparableT与IEquatableT 208 8.6 IDisposable 210 8.7 对象 210 8.7.1 Object.Equals 210 8.7.2 Object.GetHashCode 212 8.7.3 Object.ToString 213 8.8 Uri 214 8.9 System.Xml的使用 216 8.10 相等性操作符 218 8.10.1 值类型的相等性操作符 218 8.10.2 引用类型的相等性操作符 219 第9章 常用的设计模式 220 9.1 聚合组件 220 9.1.1 面向组件的设计 222 9.1.2 因子类型 224 9.1.3 聚合组件规范 224 9.2 Async模式 227 9.3 Dispose模式 232 9.3.1 基本Dispose模式 234 9.3.2 可终结类型 240 9.4 Factory模式 243 9.5 Optional Feature模式 247 9.6 Template Method模式 251 9.7 超时 252 9.8 结束语 254 附录A C#编程风格约定 255 A.1 通用风格约定 255 A.1.1 花括号的使用 255 A.1.2 空格的使用 257 A.1.3 缩进的使用 259 A.2 命名约定 259 A.3 注释 260 A.4 文件的组织 261 附录B 通过FxCop来实施设计规范 263 B.1 FxCop是什么? 263 B.2 FxCop的发展过程 264 B.3 FxCop的工作原理 265 B.4 FxCop规范的覆盖范围 265 B.4.1 与命名规范有关的FxCop规则 265 B.4.2 与类型设计规范有关的FxCop规则 274 B.4.3 与成员的设计有关的FxCop规则 277 B.4.4 与为扩展性而设计有关的FxCop规则 284 B.4.5 与异常有关的FxCop规则 285 B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305
各位试读过后认为好请支持正版!!! 第二个包的地址http://download.csdn.net/source/1170986 第三个包的地址http://download.csdn.net/source/1170990 作者: Jesse Liberty 著 刘基诚,李愈胜,刘卫卫 译 出版: 2007年9月 书号: 978-7-121-04592-9 页数: 666 定价: 78.00元 章节目录 前言 I 第1部分 C#语言 1 第1章 C#与.NET框架 3 .NET平台 3 .NET框架 4 编译过程与MSIL 6 C#语言 7 第2章 出发:“Hello World” 9 类、对象与类型 9 开发“Hello World” 16 使用Visual Studio .NET调试器 21 第3章 C#语言基础 24 类型 24 变量与常量 29 表达式 37 空白 37 语句 38 操作符 54 预处理指令 63 第4章 类与对象 67 定义类 68 创建对象 73 使用静态成员 80 销毁对象 85 传递参数 88 重载方法和构造方法 94 用属性封装数据 97 只读字段 101 第5章 继承与多态 104 具体化与一般化 104 继承 107 多态 107 抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合接口 206 约束 210 List 215 队列 226 栈 229 字典 232 第10章 字符串与正则表达式 235 字符串 236 正则表达式 251 第11章 异常处理 263 抛出和捕获异常 264 Exception对象 274 自定义异常 278 重新抛出异常 280 第12章 委托与事件 286 委托 287 多重委托 298 事件 302 使用匿名方法 315 从多重委托获取值 316 第2部分 C#编程 325 第13章 创建Windows应用程序 327 创建一个简单的Windows窗体 328 创建Windows Forms程序 332 XML文档型注释 357 第14章 用ADO.NET访问数据 360 关系型数据库与SQL 360 ADO.NET对象模型 364 开始使用ADO.NET 366 使用OLE DB托管提供程序 369 使用数据绑定控件 371 第15章 ASP.NET程序与Web Services编程 380 理解网页窗体 381 创建一个网页窗体 385 添加空间 389 数据绑定 391 Web Service 401 SOAP、WSDL和发现 402 创建一个Web Service 403 创建代理 407 第16章 综合运用 414 总体设计 414 建立网络服务客户端 414 显示结果 424 根据分类检索 433 第3部分 C#与.NET CLR 439 第17章 程序集和版本控制 441 PE文件 441 元数据 441 安全边界 442 清单 442 多模块程序集 443 专用程序集 451 共享程序集 452 第18章 属性和反射 459 属性 459 反射 466 第19章 封送和远程编程 478 程序域 479 上下文 489 远程访问 491 第20章 线程与同步 503 线程 504 同步 513 竞赛状态和死锁 523 第21章 流 525 文件和目录 526 读写数据 537 异步I/O 544 网络I/O 549 网页流 569 序列化 572 独立存储 581 第22章 COM组件在.NET平台上的编程 585 导入ActiveX控件 585 导入COM组件 593 导出.NET组件 602 P/Invoke 604 指针 608 附录 C#关键字 613 索引 619
各位觉得好请支持正版!!! 第一个包的地址http://download.csdn.net/source/1170979 第二个包的地址http://download.csdn.net/source/1170986 《Programming C#(第4版)(文版)》 作者: Jesse Liberty 著 刘基诚,李愈胜,刘卫卫 译 出版: 2007年9月 书号: 978-7-121-04592-9 页数: 666 定价: 78.00元 章节目录 前言 I 第1部分 C#语言 1 第1章 C#与.NET框架 3 .NET平台 3 .NET框架 4 编译过程与MSIL 6 C#语言 7 第2章 出发:“Hello World” 9 类、对象与类型 9 开发“Hello World” 16 使用Visual Studio .NET调试器 21 第3章 C#语言基础 24 类型 24 变量与常量 29 表达式 37 空白 37 语句 38 操作符 54 预处理指令 63 第4章 类与对象 67 定义类 68 创建对象 73 使用静态成员 80 销毁对象 85 传递参数 88 重载方法和构造方法 94 用属性封装数据 97 只读字段 101 第5章 继承与多态 104 具体化与一般化 104 继承 107 多态 107 抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合接口 206 约束 210 List 215 队列 226 栈 229 字典 232 第10章 字符串与正则表达式 235 字符串 236 正则表达式 251 第11章 异常处理 263 抛出和捕获异常 264 Exception对象 274 自定义异常 278 重新抛出异常 280 第12章 委托与事件 286 委托 287 多重委托 298 事件 302 使用匿名方法 315 从多重委托获取值 316 第2部分 C#编程 325 第13章 创建Windows应用程序 327 创建一个简单的Windows窗体 328 创建Windows Forms程序 332 XML文档型注释 357 第14章 用ADO.NET访问数据 360 关系型数据库与SQL 360 ADO.NET对象模型 364 开始使用ADO.NET 366 使用OLE DB托管提供程序 369 使用数据绑定控件 371 第15章 ASP.NET程序与Web Services编程 380 理解网页窗体 381 创建一个网页窗体 385 添加空间 389 数据绑定 391 Web Service 401 SOAP、WSDL和发现 402 创建一个Web Service 403 创建代理 407 第16章 综合运用 414 总体设计 414 建立网络服务客户端 414 显示结果 424 根据分类检索 433 第3部分 C#与.NET CLR 439 第17章 程序集和版本控制 441 PE文件 441 元数据 441 安全边界 442 清单 442 多模块程序集 443 专用程序集 451 共享程序集 452 第18章 属性和反射 459 属性 459 反射 466 第19章 封送和远程编程 478 程序域 479 上下文 489 远程访问 491 第20章 线程与同步 503 线程 504 同步 513 竞赛状态和死锁 523 第21章 流 525 文件和目录 526 读写数据 537 异步I/O 544 网络I/O 549 网页流 569 序列化 572 独立存储 581 第22章 COM组件在.NET平台上的编程 585 导入ActiveX控件 585 导入COM组件 593 导出.NET组件 602 P/Invoke 604 指针 608 附录 C#关键字 613 索引 619
各位觉得好就支持下正版!!! 第一个包的地址http://download.csdn.net/source/1170979 第三个包的地址http://download.csdn.net/source/1170990 《Programming C#(第4版)(文版)》 作者: Jesse Liberty 著 刘基诚,李愈胜,刘卫卫 译 出版: 2007年9月 书号: 978-7-121-04592-9 页数: 666 定价: 78.00元 章节目录 前言 I 第1部分 C#语言 1 第1章 C#与.NET框架 3 .NET平台 3 .NET框架 4 编译过程与MSIL 6 C#语言 7 第2章 出发:“Hello World” 9 类、对象与类型 9 开发“Hello World” 16 使用Visual Studio .NET调试器 21 第3章 C#语言基础 24 类型 24 变量与常量 29 表达式 37 空白 37 语句 38 操作符 54 预处理指令 63 第4章 类与对象 67 定义类 68 创建对象 73 使用静态成员 80 销毁对象 85 传递参数 88 重载方法和构造方法 94 用属性封装数据 97 只读字段 101 第5章 继承与多态 104 具体化与一般化 104 继承 107 多态 107 抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合接口 206 约束 210 List 215 队列 226 栈 229 字典 232 第10章 字符串与正则表达式 235 字符串 236 正则表达式 251 第11章 异常处理 263 抛出和捕获异常 264 Exception对象 274 自定义异常 278 重新抛出异常 280 第12章 委托与事件 286 委托 287 多重委托 298 事件 302 使用匿名方法 315 从多重委托获取值 316 第2部分 C#编程 325 第13章 创建Windows应用程序 327 创建一个简单的Windows窗体 328 创建Windows Forms程序 332 XML文档型注释 357 第14章 用ADO.NET访问数据 360 关系型数据库与SQL 360 ADO.NET对象模型 364 开始使用ADO.NET 366 使用OLE DB托管提供程序 369 使用数据绑定控件 371 第15章 ASP.NET程序与Web Services编程 380 理解网页窗体 381 创建一个网页窗体 385 添加空间 389 数据绑定 391 Web Service 401 SOAP、WSDL和发现 402 创建一个Web Service 403 创建代理 407 第16章 综合运用 414 总体设计 414 建立网络服务客户端 414 显示结果 424 根据分类检索 433 第3部分 C#与.NET CLR 439 第17章 程序集和版本控制 441 PE文件 441 元数据 441 安全边界 442 清单 442 多模块程序集 443 专用程序集 451 共享程序集 452 第18章 属性和反射 459 属性 459 反射 466 第19章 封送和远程编程 478 程序域 479 上下文 489 远程访问 491 第20章 线程与同步 503 线程 504 同步 513 竞赛状态和死锁 523 第21章 流 525 文件和目录 526 读写数据 537 异步I/O 544 网络I/O 549 网页流 569 序列化 572 独立存储 581 第22章 COM组件在.NET平台上的编程 585 导入ActiveX控件 585 导入COM组件 593 导出.NET组件 602 P/Invoke 604 指针 608 附录 C#关键字 613 索引 619
  本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南。书介绍了在设计框架时的最佳实践,提供了自顶向下的规范,其所描述的规范普遍适用于规模不同、可重用程度不同的框架和软件。这些规范历经.NET框架三个版本的长期开发,凝聚了数千名开发人员的经验和智慧。微软的各开发组正在使用这些规范开发下一代影响世界的软件产品。 第1章 概述 1 1.1 精心设计的框架所具备的品质 2 1.1.1 精心设计的框架是简单的 2 1.1.2 精心设计的框架设计代价高 3 1.1.3 精心设计的框架充满利弊权衡 3 1.1.4 精心设计的框架应该借鉴过去 4 1.1.5 精心设计的框架要考虑未来发展 4 1.1.6 精心设计的框架应具有良好的集成性 4 1.1.7 精心设计的框架是一致的 4 第2章 框架设计基础 6 2.1 渐进框架 7 2.2 框架设计的基本原则 10 2.2.1 场景驱动设计的原则 11 2.2.2 低门槛原则 17 2.2.3 自说明对象模型原则 20 2.2.4 分层架构原则 25 2.3 小结 27 第3章 命名规范 28 3.1 大小写约定 29 3.1.1 标识符的大小写规则 29 3.1.2 首字母缩写词的大小写 31 3.1.3 复合词和常用术语的大小写 33 3.1.4 是否区分大小写 35 3.2 通用命名约定 35 3.2.1 单词的选择 36 3.2.2 使用单词缩写和首字母缩写词 37 3.2.3 避免使用语言特有的名字 38 3.2.4 为已有API的新版本命名 39 3.3 程序集和DLL的命名 42 3.4 名字空间的命名 43 3.5 类、结构和接口的命名 47 3.5.1 泛型类型参数的命名 49 3.5.2 常用类型的命名 50 3.5.3 枚举类型的命名 51 3.6 类型成员的命名 53 3.6.1 方法的命名 53 3.6.2 属性的命名 54 3.6.3 事件的命名 55 3.6.4 字段的命名 57 3.7 参数的命名 57 3.8 资源的命名 58 3.9 小结 59 第4章 类型设计规范 60 4.1 类型和名字空间 62 4.2 类和结构之间的选择 67 4.3 类和接口之间的选择 69 4.4 抽象类的设计 76 4.5 静态类的设计 78 4.6 接口的设计 79 4.7 结构的设计 81 4.8 枚举的设计 83 4.8.1 标记枚举的设计 89 4.8.2 给枚举添加值 93 4.9 嵌套类型 94 4.10 小结 96 第5章 成员设计 97 5.1 成员设计的一般规范 97 5.1.1 成员重载 97 5.1.2 显式地实现接口成员 102 5.1.3 属性和方法之间的选择 106 5.2 属性的设计 112 5.2.1 索引属性的设计 113 5.2.2 属性改变的通知事件 115 5.3 构造函数的设计 117 5.4 事件的设计 123 5.5 字段的设计 130 5.6 操作符重载 132 5.6.1 重载operator== 136 5.6.2 类型转换操作符 136 5.7 参数的设计 138 5.7.1 枚举和布尔参数之间的选择 140 5.7.2 参数的验证 142 5.7.3 参数的传递 145 5.7.4 参数数量可变的成员 147 5.7.5 指针参数 150 5.8 小结 152 第6章 为扩展性而设计 153 6.1 扩展机制 153 6.1.1 非密封类 153 6.1.2 保护成员 155 6.1.3 事件与回调函数 156 6.1.4 虚成员 158 6.1.5 抽象(抽象类型与抽象接口) 160 6.2 基类 162 6.3 密封 163 6.4 小结 166 第7章 异常 167 7.1 抛出异常 171 7.2 为抛出的异常选择合适的类型 175 7.2.1 错误消息的设计 176 7.2.2 异常处理 177 7.2.3 对异常进行封装 182 7.3 标准异常类型的使用 184 7.3.1 Exception与SystemException 184 7.3.2 ApplicationException 184 7.3.3 InvalidOperationException 184 7.3.4 ArgumentException、ArgumentNullException及ArgumentOutOfRangeException 185 7.3.5 NullReferenceException、IndexOutOfRangeException及AccessViolationException 186 7.3.6 StackOverflowException 186 7.3.7 OutOfMemoryException 187 7.3.8 ComException、SEHException及其他CLR异常 188 7.3.9 ExecutionEngineException 188 7.4 自定义异常的设计 188 7.5 异常与性能 190 7.5.1 Tester-Doer模式 190 7.5.2 Try-Parse模式 191 7.6 小结 192 第8章 使用规范 193 8.1 数组 193 8.2 attribute 195 8.3 集合 198 8.3.1 集合参数 199 8.3.2 集合属性与返回值 200 8.3.3 数组与集合之间的选择 204 8.3.4 自定义集合的实现 205 8.4 ICloneable 207 8.5 IComparableT与IEquatableT 208 8.6 IDisposable 210 8.7 对象 210 8.7.1 Object.Equals 210 8.7.2 Object.GetHashCode 212 8.7.3 Object.ToString 213 8.8 Uri 214 8.9 System.Xml的使用 216 8.10 相等性操作符 218 8.10.1 值类型的相等性操作符 218 8.10.2 引用类型的相等性操作符 219 第9章 常用的设计模式 220 9.1 聚合组件 220 9.1.1 面向组件的设计 222 9.1.2 因子类型 224 9.1.3 聚合组件规范 224 9.2 Async模式 227 9.3 Dispose模式 232 9.3.1 基本Dispose模式 234 9.3.2 可终结类型 240 9.4 Factory模式 243 9.5 Optional Feature模式 247 9.6 Template Method模式 251 9.7 超时 252 9.8 结束语 254 附录A C#编程风格约定 255 A.1 通用风格约定 255 A.1.1 花括号的使用 255 A.1.2 空格的使用 257 A.1.3 缩进的使用 259 A.2 命名约定 259 A.3 注释 260 A.4 文件的组织 261 附录B 通过FxCop来实施设计规范 263 B.1 FxCop是什么? 263 B.2 FxCop的发展过程 264 B.3 FxCop的工作原理 265 B.4 FxCop规范的覆盖范围 265 B.4.1 与命名规范有关的FxCop规则 265 B.4.2 与类型设计规范有关的FxCop规则 274 B.4.3 与成员的设计有关的FxCop规则 277 B.4.4 与为扩展性而设计有关的FxCop规则 284 B.4.5 与异常有关的FxCop规则 285 B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305

110,571

社区成员

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

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

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