C#和优化中小方法调用的成本

kac*_*123 2 .net c# oop optimization compiler-optimization

我想知道调用短方法的开销是什么,或者代码是否会以任何方式进行优化,如果它与getter的成本不同?

我只举一个例子,因为很难解释.

我有一个ClaimsManager用于获取特定声明并返回它们的网站.从另一个获得一个声明的过程只有一个ClaimsType字符串.

public string GetClaimValueByType(string ClaimType)
{
    return (from claim in _claimsIdentity.Claims
              where claim.ClaimType == ClaimType
              select claim.Value).SingleOrDefault();
}

/*Again would this be better or worse if I wanted to be able to choose if 
I want the claim versus the value?

public Claim GetClaimByType(string ClaimType)
{
    return (from claim in _claimsIdentity.Claims
              where claim.ClaimType == ClaimType
              select claim).SingleOrDefault();
}

public string GetClaimValueByType(string ClaimType)
{
    return GetClaimByType(ClaimType).Value;
}
*/    
public string GetEmail()
{
    return GetClaimValueByType(ClaimTypes.Email);
}

/* Or should I use getters?...
public string Email
{
    get
    {
        return return GetClaimValueByType(ClaimTypes.Email);
    }
}
*/
Run Code Online (Sandbox Code Playgroud)

这种简短的获取方法是不是这种做法?是否应该有大量的呼叫开销,因为它太短或者会优化吗?最后,在这里实际使用吸气剂更有意义吗?

谢谢

Kon*_*Kon 5

在我看来,使用setter和getter可能带来的边际开销远远超过了干净且易于维护的代码,这些代码很可能对于街上的任何.NET开发人员来说更容易选择和运行.

但我想这也取决于你的Claim对象有多大.:)

  • 不过要问的好问题.我认为很多入门级和初级级别的人可能倾向于过度分析这种情况. (4认同)