美文网首页
C#之using

C#之using

作者: 小羊爱学习 | 来源:发表于2024-06-02 16:42 被阅读0次

一:引用命名空间

using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间

二:为命名空间或类型创建别名

using + 别名 = 包括详细命名空间信息的具体的类型。
当同一个cs引用了不同的命名空间,但这些命名空间都包括了一个相同名字的类型的时候,可以使用using关键字来创建别名,这样会使代码更简洁。当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。

            using System;
            using aClass = NameSpace1.MyClass;
            using bClass = NameSpace2.MyClass;
            ......
            //使用方式
            aClass my1 = new aClass();
            Console.WriteLine(my1);
            bClass my2 = new bClass();
            Console.WriteLine(my2);

三:使用using语句

使用using语句的目的就是允许程序员指定使用资源的对象应当何时释放资源。using 语句中使用的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。
首先IDisposable接口就是一种非常有用且非常常用的接口,该接口要求类实现Dispose()方法,在该方法中释放占用的资源。如果在析构函数中释放资源要等到垃圾回收时,太晚了。但是手动调用Dispose方法稍微有点麻烦,而且也怕忘了调用,这样资源也得不到及时释放,所以可以使用using关键字,using关键字代码块的末尾会自动调用Dispose方法。
要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。

        // 使用SHA-256哈希函数处理秘钥
        private static string GetSHA256Hash(string input)
        {
            using (SHA256 sha256 = System.Security.Cryptography.SHA256.Create())
            {
                byte[] inputBytes = Encoding.UTF8.GetBytes(input);
                byte[] hashedBytes = sha256.ComputeHash(inputBytes);
                // 取前32字节作为AES算法的秘钥
                return Convert.ToBase64String(hashedBytes).Substring(0, 32);
            }
        }
  • .net8中可简化使用:
            using SHA256 sha256 = System.Security.Cryptography.SHA256.Create();
            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
            byte[] hashedBytes = sha256.ComputeHash(inputBytes);
            // 取前32字节作为AES算法的秘钥
            return Convert.ToBase64String(hashedBytes).Substring(0, 32);

相关文章

网友评论

      本文标题:C#之using

      本文链接:https://www.haomeiwen.com/subject/lwdsqjtx.html