小编Ser*_*pov的帖子

C#IL代码优化:条件运算符(?:)并重新赋值相同的变量

我正在阅读C#7.0更改日志并遇到一个显示新元组语法的示例.

private static (int Max, int Min) Range(IEnumerable<int> numbers)
{
    int min = int.MaxValue;
    int max = int.MinValue;
    foreach(var n in numbers)
    {
        min = (n < min) ? n : min;
        max = (n > max) ? n : max;
    }
    return (max, min);
}
Run Code Online (Sandbox Code Playgroud)

如果编译器优化像min = (n < min) ? n : min;原因min = min操作这样的行似乎有点无用,我很好奇.我编译了代码(在发布模式下)并在ILDASM中打开它,看到该min = min任务仍在那里.

编译器跳过作业是一个棘手的问题吗?或许是因为一些多线程问题?

c# optimization cil

11
推荐指数
1
解决办法
218
查看次数

system.data列“ invariantname”被限制为唯一

我正在使用FirebirdSqlProvider 4.8.1.1和EntityFramework 6.0,但system.data column 'invariantname' is constrained to be unique在尝试使用EntityFramework时出现异常。我的app.config档案:

<entityFramework>
    <defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />
    <providers>
      <provider invariantName="FirebirdSql.Data.FirebirdClient" type="FirebirdSql.Data.EntityFramework6.FbProviderServices, EntityFramework.Firebird" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>
<system.data>
    <DbProviderFactories>
      <remove invariant="FirebirdSql.Data.FirebirdClient" />
      <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
    </DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)

我的machine.confgi文件中只有一个DbProviderFactories实体。如何解决?

c# firebird entity-framework

5
推荐指数
1
解决办法
2497
查看次数

*ngFor中的条件

我有两个字符串数组,我想迭代其中一个取决于条件.如何避免代码重复?现在*ngIf:

<tr *ngIf="!condition">
    <td *ngFor="let field of firstArray">{{field}}</td>
</tr>
<tr *ngIf="condition">
    <td *ngFor="let field of secondArray">{{field}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

angular2-template angular

4
推荐指数
1
解决办法
1671
查看次数

将EnumSet转换为整数数组

我有一个EnumSet,并希望将其转换为其序数值的数组.例如:

enum MyEnum { A, B, C; }
EnumSet enumSet = EnumSet.of(MyEnum.A, MyEnum.C);
Run Code Online (Sandbox Code Playgroud)

我想得到什么:

[0, 2]
Run Code Online (Sandbox Code Playgroud)

java arrays enums android enumset

1
推荐指数
1
解决办法
2273
查看次数