c#-7.0

    1热度

    1回答

    我正在试验C#7的新功能,尤其是本地方法。我写了Linq Where Operator。 我实现了迭代器块作为本地方法(事实上,我阅读文章说本地方法是异步方法和迭代器的完美解决方案)。 我想知道这两个实现是否有区别,如果不是哪一个最好? 先执行: 这里我引入了新的泛型类型参数的本地方法,新名称为参数... public static IEnumerable<TSource> Where<TSour

    -4热度

    1回答

    我正在Windows XP计算机上运行的Visual Studio 2017中构建应用程序,但能够使用C#7.0元组文字将是我的解决方案的理想组件。 我想我可能只是增加两个的NuGet包,Microsoft.Net.Compilers和System.ValueType,使我的可执行文件使用的语法像(string foo, string bar)但我发现了一个语法错误,CS8179 C# Prede

    5热度

    1回答

    在C#7中,我们可以实现Deconstruct方法,该方法在将对象分配给具有匹配类型的元组时将被调用。 我想知道为什么微软决定实施这个“魔法”。有一种特殊命名的方法不能从任何地方继承,如果你命名它并输入正确的参数,那么你就可以将这个对象分配给相应的元组。 我会想象,设计团队会为此创建一个接口。 喜欢的东西: public interface IDecontructible<T1> {

    6热度

    1回答

    在.cshtml视图中使用插值字符串会导致以下intellisense错误:Feature 'interpolated strings' is not used in C#5. Please use language version 6 or greater.此和其他C#7语言功能在编译代码(.cs文件)中工作, 。 正如您在下面看到的,最新的主要版本是 C#7。 根据this question评

    3热度

    3回答

    我想ValueTuple类在C#中,我有一个关于性命名疑问,让我们来看看: 如果实例化一个ValueTuple宣布这样的对象:var tuple1 = (Name: "Name1", Age: 25); 我们可以命名的属性, 但是,像这样的:ValueTuple<string,int> tuple2 = (Name: "Name1", Age: 25); ,我们得到的是说,名称将被忽略警告,所以

    5热度

    2回答

    我有一个方法正在采用Action<string>(请参阅下面的简单示例),但在构建Action的调用方法中,Resharper建议本地函数应该使用。 围绕使用本地函数代替动作推荐的做法是什么,这有什么重要的,或者是否有需要注意的陷阱? public void Caller() { string holder; Action<string> act = s => holder

    3热度

    2回答

    我正在努力通过编写一些可以为我创建属性的助手来使EF更容易进行单元测试。我有一对夫妇的支持领域 private Mock<DbSet<Workflow>> mockedWorkFlows; private Mock<DbSet<WorkflowError>> mockedWorkFlowErrors; 而且我希望有一个通用的功能,能够回到我正确的支持字段具有以下功能 public Mock<

    0热度

    1回答

    我有以下代码: public static class ItemsHelper { public static object product { get { return HttpContext.Current.Items["product"]; } set { HttpContext.C

    5热度

    1回答

    C#7中的新ValueTuple类型实现IComparable,但我已经能够在其实现上找到这个唯一的documentation,只是表明CompareTo的返回值表示相对位置“按排序顺序”。它没有说明实际所指的“排序顺序”。 通过检查来源,我可以发现订单是我期望的 - 它委托比较第一个字段的默认Comparer,然后逐个使用其他字段,以打破关系。但是,如果没有保证它不被视为可以在不违反规范的情况下

    2热度

    1回答

    目前在c#7(版本15.3.4)中,以下代码有效编译,但两个变量都合法无法使用。 switch(fruit) { case Apple apple: case Orange orange: // impossible to use apple or orange break; case Banana banana: break; }