using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace statckt
{
class trycalss
{
private int a;
private int A
{
set { a = value; }
}
public void tryM(int x)
{
try
{
for (int i = 0; i < x; i++)
{
A = 1 + 1;
}
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
public void M(int x)
{
for (int i = 0; i < x; i++)
{
A= 1 + 1;
}
}
}
class Test
{
static void Main()
{
trycalss t = new trycalss();
DateTime dt = DateTime.Now;
DateTime dt1 = DateTime.Now;
TimeSpan ts = new TimeSpan();
try
{
int a =Convert.ToInt32(Console.ReadLine());
t.tryM(a);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
dt = DateTime.Now;
t.M(1000000000);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
}
catch(Exception ex)
{
Console.Write(ex.ToString());
}
ts = DateTime.Now - dt1;
Console.WriteLine(ts.ToString());
dt = DateTime.Now;
t.tryM(1000000000);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
dt = DateTime.Now;
t.M(1000000000);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
dt = DateTime.Now;
t.tryM(2000000000);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
dt = DateTime.Now;
t.M(2000000000);
ts = DateTime.Now - dt;
Console.WriteLine(ts.ToString());
Console.Read();
}
}
}
debug:进行相同的计算,加入Try {}catch{},会比没加的方法慢一倍右左;
Release: 进行相同的计算,加入Try {}catch{},会比没加的方法更快;
posted @ 2007-09-12 11:20 年轻活力 阅读(97) 评论(2)
编辑
MSDN 加网上参考结合版,因为项目需求用到DES加密
using System;
using System.IO;
using System.Data;
using System.Text;
using System.Diagnostics;
using System.Security;
using System.Security.Cryptography;
/// <summary>
/// statics 的摘要说明
/// </summary>
public class statics
{
public statics()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static byte[] Gytes(string txt) //转换字节
{
UTF8Encoding utf = new UTF8Encoding();
byte[] bytes = utf.GetBytes(txt);
return bytes;
}
public static string Gpass(byte[] bt)//转换字符串
{
StringBuilder sb = new StringBuilder();
foreach (int p in bt)
{
sb.Append(Convert.ToString(p, 16).PadLeft(2, '0'));
}
return sb.ToString();
}
public static string Gutf8(byte[] bt)
{
UTF8Encoding utf = new UTF8Encoding();
return utf.GetString(bt).ToString();
}
public static byte[] Gbase(string bs)
{
return Convert.FromBase64String(bs);
}
public static string Sha1EN(string txt) //sha1散列
{
try
{
SHA1 s = new SHA1CryptoServiceProvider();
byte[] b2 = s.ComputeHash(Gytes(txt));
s.Clear();
return Gpass(b2);
}
catch { return string.Empty; }
}
public static String MD5EN(string txt)
{
try
{
MD5 m = new MD5CryptoServiceProvider();
byte[] b2 = m.ComputeHash(Gytes(txt));
m.Clear();
return Gpass(b2);
}
catch { return string.Empty; }
}
/// 使用DES加密
/// <param name="value">待加密的字符串</param>
/// <param name="key">密钥(最大长度8)</param>
/// <param name="IV">初始化向量(最大长度8)</param>
/// <returns>加密后的字符串</returns>
public static string Des3EN(string value, string key, string iv)
{
try
{
key = key.PadRight(8, '0').Substring(0, 8);
iv = iv.PadRight(8, '0').Substring(0, 8);
MemoryStream ms = new MemoryStream();
DES des = new DESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(Gytes(key), Gytes(iv)), CryptoStreamMode.Write);
des.Clear();
cs.Write(Gytes(value), 0, Gytes(value).Length);
cs.FlushFinalBlock();
cs.Clear();
return Convert.ToBase64String(ms.ToArray());
}
catch { return string.Empty; }
}
public static string Des3EN(string value, string key)
{
return Des3EN(value, key, key);
}
public static string Des3DE(string value, string key, string iv)
{
try
{
key = key.PadRight(8, '0').Substring(0, 8);
iv = iv.PadRight(8, '0').Substring(0, 8);
MemoryStream ms = new MemoryStream();
DES des = new DESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(Gytes(key), Gytes(iv)), CryptoStreamMode.Write);
des.Clear();
cs.Write(Gbase(value), 0, Gbase(value).Length);
cs.FlushFinalBlock();
cs.Clear();
return Gutf8(ms.ToArray()).ToString();
}
catch { return string.Empty; }
}
public static string Des3DE(string value, string key)
{
return Des3DE(value, key, key);
}
}
posted @ 2007-08-03 14:15 年轻活力 阅读(911) 评论(0)
编辑
posted @ 2007-07-25 21:59 年轻活力 阅读(210) 评论(0)
编辑
由于Byte进行散列时,会有出现0,再进行convert转换时,原本是00的,就变成了0,最后长度就不一了
posted @ 2007-07-22 11:58 年轻活力 阅读(185) 评论(0)
编辑
如果要查找某一行数据,用什么方法比较好(效率比较高)?
现有的想法(读取数据,给每一行数据编号 插入到临时表,最后根据编号来定位)
现在就是在读取数据后,还要重新排序,造成的性能损失较大
posted @ 2007-06-12 16:44 年轻活力 阅读(173) 评论(0)
编辑
posted @ 2007-06-09 15:32 年轻活力 阅读(352) 评论(0)
编辑
posted @ 2007-05-23 23:10 年轻活力 阅读(48) 评论(0)
编辑