English 中文(简体)
如何编纂C#代码,以要求某种语言或编纂者版本?
原标题:
  • 时间:2009-06-05 12:40:41
  •  标签:

如何根据C#版本汇编C#,其中不含对该方案所用语文特征的支持?

C#汇编者将拒绝该方案,并在遇到其不支持的语文特征时产生一些错误信息。 这个问题没有解决,那就是说,正在用太老的C#汇编器或C#汇编器汇编成册,不支持C#的必要版本。

理想的情况是,这既简单又简单。

#if CS_VERSION < 3
#error CSharp 3 or later is required
#end
最佳回答

我不相信你能够用C#文档这样做,但如果你重新使用MSBuild,那么项目/陈旧工具编号就可以阻止它用旧版本的MSBuild来建造。

您能否给出具体的背景? 一种“人类”解决办法,而不是一种技术解决办法,可能是尝试用所有“旧”版本汇编法典,并编写一份文件,其中“如果你遇到像this这样的错误,这很可能意味着你重新使用错误版本。

您可能希望考虑的另一个选择是,哪怕更简单,就有一个单一的“要求特征”档案。 您的主要用词将无法使用,但请用户首先汇编。 如果它发挥作用,那么你建造的其余部分就应当发挥作用。 如果是,它会使用错误版本。 这可能产生不同版本的较小范围的错误(特别是,汇编者可能按随机顺序列出不同档案的错误问题)。

问题回答

根据,这份清单是预处理人指令的,看来是可能的。 我们通常可以通过使用通用(检测2.0)、使用汽车(3.0)或动态(4.0)来说明。

简便:如果汇编成册,汇编者将失败,给你一个错误。

没有任何预先界定的象征;你可以树立自己的象征,在你的建筑文字中加以界定。 请注意,您可在项目一级确定语文文本:

项目性质——和; 建设——和; 先进——和; 语言版本

  • ISO-1 is C# 1.2
  • ISO-2 is C# 2.0

(csc /langversion para amount)

但指出,这只字不提一切,有些事情会让它去做——特别是在一般性的推论方面。 只有当你需要支持旧的汇编者时,才是一个问题。

例如:

int[] arr1 = { 1, 2, 3, 4, 5 };
string[] arr2 = Array.ConvertAll(arr1, delegate (int i) {return i.ToString();});

这在NET 3.5/ISO-2(pseudo C# 2.0)中进行,但在NET 2.0(proper C# 2.0)中进行t工作。

也许你可以读到所支持的内容。 运行时间:

然后,请你根据所支持的Runtime,使用

你们将在联邦统计局中创造一种宏观手段来利用这一工具。





相关问题
热门标签