vs2008和vs2010之间的公共接口差异?

时间:2012-03-30 18:51:08

标签: c# visual-studio-2010 visual-studio-2008

我刚刚在VS2010中创建了一个简单的项目,C#dotnet 3.5

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Business.Util
{
        public interface ICalculateCurrent<in T1, in T2, in T3, in T4>
        {
            bool GetValue(T1 obj1, T2 obj2, T3 obj3, T4 obj4);
        }

        public static class test
        {
            static void Main(string[] args)
            {

            }
        }
}

很好,目前没有做任何事情,但它会编译。

然后意识到我真的想在VS2008中执行此操作,dotnet3.5我创建了完全相同的代码,除了接口错误之外我什么都没得到;

Invalid token 'in' in class, struct, or interface member declaration
Type expected
Invalid token ',' in class, struct, or interface member declaration
Invalid token ',' in class, struct, or interface member declaration
Invalid token ',' in class, struct, or interface member declaration
Invalid token '>' in class, struct, or interface member declaration

项目参考是相同的。我对此缺少什么?

感谢。

3 个答案:

答案 0 :(得分:6)

Variant接口需要VS2010版本的C#编译器。即使您的目标是.NET 3.5,它仍然使用新的编译器。

无法用VS2008做到这一点,对不起。 .NET 3.5包含对变体接口的运行时支持,但旧的C#编译器不支持。

如果您没有使用界面差异,只需删除该行上显示的in四次。

答案 1 :(得分:4)

针对泛型的in关键字已添加到VS10。阅读here

答案 2 :(得分:1)

outin关键字以及协变和逆变泛型类型参数 是C#4.0的新手(VS 2010提供)。