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

bala7229291 2011-09-14 07:54:21
我用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#下运行没问题

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

请问高手要怎么解决,是否不能使用C#里的操作符重载来实现SQL Server里的操作符重载,那怎么实现我想要的效果。
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-09-15
  • 打赏
  • 举报
回复
CLR的可以问问P梁
bala7229291 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
CLR的可以问问P梁
[/Quote]
谢谢,我刚查了一下资料,似乎SQL Server 2005还不支持CLR用户自定义类型的运算符重载,遗憾,只能使用 select col.method()的形式,我先结贴了,希望有这方面经验的朋友给不同的意见
bala7229291 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
你应该去C#版问.
[/Quote]
只是我觉得这个问题应该是C#和SQL Server有交集的问题,而且我觉得跟SQL Server关系更密切,不过我会尝试去C#版问一下
dawugui 2011-09-14
  • 打赏
  • 举报
回复
你应该去C#版问.
此文档为英文版,最新的 分为2部分 这是文版的介绍 作为深受编程人员爱戴和尊敬的编程专家,微软.NET开发团队的顾问,本书作者Jeffrey Richter针对开发各种应用程序(如Web Form、Windows Form和Web服务、Microsoft SQL Server解决方案、控制台应用程序、NT Service)的开发人员,深入揭示了公共语言运行库(CLR)和.NET Framework.,演示了如何将这些知识应用到实际开发。全书分5部分,共24章。第Ⅰ部分讲述CLR基础,第Ⅱ部分介绍类型的使用,第Ⅲ部分说明类型的设计,第Ⅳ部分介绍基本类型,第Ⅴ部分讲述CLR实用特性。通过本书的阅读,读者可以掌握CLR精髓,轻松、高效地创建高性能应用程序。 -------------------------------------------------------------------------------- 【目录】 第Ⅰ部分 CLR基础  第1章 CLR的执行模型 第2章 生成、打包、部署和管理应用程序及类型  第3章共享程序集和强命名程序集第Ⅱ部分 类型的使用  第4章 类型基础 第5章 基元、引用和值类型 第Ⅲ部分 类型的设计  第6章类型和成员基础 第7章 常量和字段 第8章 方法:构造器、操作符、转换操作符和参数  第9章 属性 第10章 事件第Ⅳ部分 基本类型 第11章 字符、字符串和文本 第12章 枚举类型和位标志 第13章 数组 第14章 接口 第15章 委托 第16章 泛型 第17章自定义属性 第18章 可空值类型第Ⅴ部分 CLR实用特性  第19章 异常 第20章 自动内存管理(垃圾收集) 第21章 CLR寄宿和应用程序域  第22章 程序集的加载与反射  第23章 执行异步操作 第24章 线程同步

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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