小小细节(一)
2009-05-11 10:02
176 查看
一切刚起步,从基础做起,关注细节。新参与的项目和以前做的东西相比,也让我有一点小小的收获。无论从代码编写,还是架构的设计,^_^
1、特殊字符的处理
以前有两种方式处理特殊字符,要么后台代码里处理,要么在基类里写个方法公共调用
现在这么做:在存储过程/函数里处理,其实,后台处理和在存储过程中处理有什么性能上的差异吗?
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主要用来封装一些变量,其实我在我眼里,就是一种全局变量,不过用法更有质量些:
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"; }
相关文章推荐
- 一道小小面试题的细节分析
- java中写sql语句的小小细节
- 关于Android优化的小小细节
- 神一般的狙击Lua的恶心操作(写个小小滴应用逻辑还要管出入栈这些恶心细节, 太二了,故哥决定干掉)
- 一些小小的细节
- 程序构架(小小感想,从细节展开)(写给自己,别人勿看)
- 小小的细节大大的作用
- 关于索引器和访问器的访问修饰的小小细节
- 小小的细节错误浪费一天
- zeroc ice slice文件中的一个小小的使用细节
- 安装机柜小小细节
- 一道小小面试题的细节分析
- html 小小细节...
- 关于Java代码块的小小细节
- html的那些小小细节
- java中写sql语句的小小细节
- php优化的小小细节
- 关于makefile: 一个小小的细节
- 在js里拼接html时的一个小小细节
- 神一般的狙击Lua的恶心操作(写个小小滴应用逻辑还要管出入栈这些恶心细节, 太二了,故哥决定干掉)