CLR用户自定义类型中的操作符重载
我用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里的操作符重载,那怎么实现我想要的效果。
------解决方案--------------------
select @a + @b
这句话不是cls执行吧,是由sql执行;
sql又不知道你定义了新类型
------解决方案--------------------
围观学习
C#中有些东西是集成的,CLR没有直接对应项。