【问题标题】:Does the structure of a C# file affect what is compiled?C# 文件的结构会影响编译的内容吗?
【发布时间】:2012-06-22 09:20:11
【问题描述】:

C# 文件的结构会影响编译的内容吗?

例如,成员的顺序(就其在文件中的位置而言)会影响编译后的类吗?

【问题讨论】:

  • 为什么不试试看呢?
  • ...告诉我们你发现了什么?
  • ...并使用不同的编译器进行交叉比较。然后写一篇关于它的不错的博客文章并立即成名:)
  • 不,AFAIK。 C 会,C++ 有时会,C# 不会。无论如何,您可以使用 .NET Reflector 反编译器检查真实的代码语句。
  • 不是编译的C#文件吗,所以你问的是文件是否影响文件。 :P

标签: c# .net compilation file-structure


【解决方案1】:

根据我前几天阅读的 Eric Lippert 的一篇博客文章,编译器不保证同一源代码的两次编译最终会产生相同的 IL。不过,这与方法排序无关,但我认为这也适用 - 所以,我认为在编译的类中假设任何方法排序是不安全的。我也不希望源文件方法排序和 IL 方法排序之间有任何联系。

【讨论】:

【解决方案2】:

虽然在大多数情况下顺序并不重要,但对于匿名类型不是

new{a=1,b=2}

创建一个不同的、不兼容的类型

new{b=2,a=1}

【讨论】:

【解决方案3】:

不保证成员的顺序。

【讨论】:

  • 你确定这是正确的(成员名不一样)?当使用反射或 ILSpy 之类的东西时,您可以看到它们没有改变。
  • 我和你在一起,@GeorgeDuckett。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 2018-08-13
  • 2012-10-06
  • 1970-01-01
  • 2010-12-14
相关资源
最近更新 更多