《编写高质量代码:改善C#程序的157个建议》勘误表

本文详细介绍了《编写高质量代码:改善C#程序的157个建议》一书中的勘误部分,包括变量声明、线程安全、加密解密等关键问题的正确实现方式。通过提供具体示例代码更正,旨在帮助读者理解和避免常见的编程错误,提升C#代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《编写高质量代码:改善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();
                }
            }
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值