《编写高质量代码:改善C#程序的157个建议》勘误表
《编写高质量代码:改善C#程序的157个建议》中关于勘误的描述:
资源及勘误
通常情况下,一个问题的解决方案往往不止一种,你可能会不同意本书中的一些观点,甚至会强烈反对。没有关系,你可以通过luminji@hotmail.com(E-mail)与我分享你的宝贵意见,同时也可以在http://www.cnblogs.com/luminji下载书中的源码。我也经常在那里发表博客。当然,你一定也会在书中找到一些错误,我已经在博客上放置了一篇勘误表,我会在第一时间公布这些勘误。
以下是勘误部分:
1:44
原:
int[] iArr = { 0, 1, 2, 3, 4, 5, 6 }; ArrayList arrayListInt = ArrayList.Adapter(iArr); arrayListInt.Add(7);
修改为:
int[] iArr = { 0, 1, 2, 3, 4, 5, 6 }; ArrayList arrayListInt = new ArrayList(iArr); arrayListInt.Add(7);
2:P178
textBoxPage.Text = content;
修改为:
if (textBoxPage.InvokeRequired)
textBoxPage.BeginInvoke(new Action(() =>
{
textBoxPage.Text = content;
}));
else
textBoxPage.Text = content;
3:P279
不支持中文加解密
public static string EncryptString(string input, string password) { using (MemoryStream memoryStream = new MemoryStream()) using (SymmetricAlgorithm algorithm = CreateRijndael(password, salt)) { algorithm.IV = iv; using (CryptoStream cryptoStream = new CryptoStream(memoryStream, algorithm.CreateEncryptor(), CryptoStreamMode.Write)) { byte[] bytes = System.Text.Encoding.UTF32.GetBytes(input); cryptoStream.Write(bytes, 0, bytes.Length); cryptoStream.Flush(); } return Convert.ToBase64String(memoryStream.ToArray()); } } public static string DecryptString(string input, string password) { using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(input))) using (SymmetricAlgorithm algorithm = CreateRijndael(password, salt)) { algorithm.IV = iv; using (CryptoStream cryptoStream = new CryptoStream(memoryStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read)) { StreamReader sr = new StreamReader(cryptoStream, System.Text.Encoding.UTF32); return sr.ReadToEnd(); } } }