MethodImpl(NoOptimization)对这个方法有什么作用?这真的很麻烦吗?

 用户gum5gltoo8 发布于 2023-02-12 11:40

好吧,我想哈希一个密码,我看看ASP.net Identity在Microsoft.AspNet.Identity.CryptoClass 中是怎么做的,我来了这个函数(用于比较2个密码Hashes):

[MethodImpl(MethodImplOptions.NoOptimization)]
private static bool ByteArraysEqual(byte[] a, byte[] b)
{
    if (object.ReferenceEquals(a, b))
    {
        return true;
    }
    if (((a == null) || (b == null)) || (a.Length != b.Length))
    {
        return false;
    }
    bool flag = true;
    for (int i = 0; i < a.Length; i++)
    {
        flag &= a[i] == b[i];
    }
    return flag;
}

这是反射器输出的直接复制......

现在我的问题是,NoOptimization属性的优点什么,为什么它应该存在(如果我删除它会发生什么)?对我来说,它看起来像是一个默认的Equals()实现,直到for-loop.

我试着看一下IL,但这对我来说都是胡说八道:/

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有