您的位置:首页 > 其它

小小细节(一)

2009-05-11 10:02 176 查看
一切刚起步,从基础做起,关注细节。新参与的项目和以前做的东西相比,也让我有一点小小的收获。无论从代码编写,还是架构的设计,^_^

1、特殊字符的处理
以前有两种方式处理特殊字符,要么后台代码里处理,要么在基类里写个方法公共调用
现在这么做:在存储过程/函数里处理,其实,后台处理和在存储过程中处理有什么性能上的差异吗?

ALTER  FUNCTION [bas].[fn_SIF_EncodeString]
(
-- Add the parameters for the function here
@inputString  NVARCHAR(50),
@enclose bit = 0

)
RETURNS NVARCHAR(50)
AS
BEGIN
--SET @inputString=REPLACE ( @inputString, '^' , '[^]' );
SET @inputString=REPLACE ( @inputString, '%' , '[%]' );
SET @inputString=REPLACE ( @inputString, '_' , '[_]' );

IF @enclose = 1
SET @inputString = '%' + @inputString + '%'

RETURN @inputString;
END


2、常用的几种提示方法

很多时候需要把系统做得友好,删除信息离开页面都需要有提示。

离开页面时的提示信息:
客户端 onclick="javascript:if(!ConfirmNavigation())return; "
服务器端 OnClientClick="return ConfirmNavigation();"

删除提示:
客户端 onclick="javascript:if(!ondelete())return;"
服务器端 OnClientClick="return ondelete();"

function ondelete()
{
var result=window.confirm("Are you sure to delete?");
return result;
}

3.Clsss和Struct
以前开发项目,和Struct几乎没有接触,SIF让我稍微对它有了一点了解。
MSDN对Struct的解释是:struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。

其实,class和struct最本质的区别就在于:class是引用类型,继承自System.Object类,内存分配于托管堆;而struct是值类型,继承自System.ValueType类,内存分配于线程的堆栈上,不具多态性。我一直有个不解的地方,为啥System.ValueType是个引用类型,而继承它的Struct却是个值类型?

在以下情况下,鉴于性能上的考虑,我们应该考虑使用struct来代替class:
实现一个主要用于存储数据的结构时,可以考虑struct。
struct变量占有堆栈的空间,因此只适用于数据量相对小的场合。
结构数组具有更高的效率。
提供某些和非托管代码通信的兼容性。

在SIF中,Struct主要用来封装一些变量,其实我在我眼里,就是一种全局变量,不过用法更有质量些:
public struct DbMsgType
{
public const string CANNOT_NULL = "CANNOT_NULL";
public const string DUPLICATE_KEY = "DUPLICATE_KEY";
public const string ISNOT_EXISTS = "ISNOT_EXISTS";
public const string VALIDATE = "VALIDATE";
public const string IN_USE = "IN_USE";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: