【问题标题】:C# how to compare if two methods are the sameC#如何比较两个方法是否相同
【发布时间】:2023-02-04 02:44:06
【问题描述】:

我想比较两个方法是否具有相同的主体和相同的方法签名。我还想确保它们在方法之上具有相同的属性。

有没有办法获取方法主体信息?我知道我可以轻松获取属性,但我尝试使用反射但没有找到方法。下面是两个例子。

这应该返回它们是相同的

[TestCase("a")]
public void Foo1(string a)
{
   Assert.True(true);
}

[TestCase("a")]
public void Foo1(string a)
{
   Assert.True(true);
}

这应该返回它们不相同,因为一个额外的属性

[TestCase("a")]
public void Foo1(string a)
{
   Assert.True(true);
}

[TestCase("a")]
[TestCase("aa")]
public void Foo1(string a)
{
   Assert.True(true);
}

这应该返回它们不相同,因为方法体不同

[TestCase("a")]
public void Foo1(string a)
{
   Assert.True(true);
}

[TestCase("a")]
public void Foo1(string a)
{
   Assert.That(a, Is.EqualTo("a"));
}

【问题讨论】:

    标签: c# .net-assembly


    【解决方案1】:

    仅通过解析源代码。连反射都不符合你的要求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2017-07-10
      • 2014-09-20
      • 2021-05-23
      • 1970-01-01
      相关资源
      最近更新 更多