小编yon*_*bat的帖子

局部变量和表达式树

我正在学习C#中的表达式树.

我现在被困了一段时间了:

string filterString = "ruby";
Expression<Func<string, bool>> expression = x => x == filterString;
Run Code Online (Sandbox Code Playgroud)

如何通过代码构造此表达式?没有示例如何捕获局部变量.这个很简单:

Expression<Func<string, bool>> expression = x => x == "ruby";
Run Code Online (Sandbox Code Playgroud)

这将是:

ParameterExpression stringParam = Expression.Parameter(typeof(string), "x");
Expression constant = Expression.Constant("ruby");
BinaryExpression equals = Expression.Equal(stringParam, constant);
Expression<Func<string, bool>> lambda1 =
    Expression.Lambda<Func<string, bool>>(
        equals,
        new ParameterExpression[] { stringParam });
Run Code Online (Sandbox Code Playgroud)

调试器为(x => x == filterString)打印以下内容:

{x =>(x == value(Predicate.Program + <> c__DisplayClass3).filterString)}

感谢您对此主题有所了解.

c# linq lambda

25
推荐指数
3
解决办法
1万
查看次数

ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol]

如果我使用外键编写表脚本,它看起来像这样:

GO
ALTER TABLE [dbo].[MyTable]  WITH CHECK ADD  CONSTRAINT [FK_MyTable_SomeCol] FOREIGN KEY([SomeCol])
REFERENCES [dbo].[MyOtherTable] ([SomeCol])
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol]
GO
Run Code Online (Sandbox Code Playgroud)

(ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_SomeCol])的第二部分是什么?

t-sql

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

将 nx-Angular 项目更新为 Angular 的特定主要版本

我对 nx 的版本控制系统(带有角度)有点迷失。就我而言,我想使用最新的兼容工具(jest、nx)从 Angular 12 升级到 Angular 13。

Angular 14 现已上市。因此,如果我运行下面的命令,它将更新为角度 14。

nx migrate latest
Run Code Online (Sandbox Code Playgroud)

如何使用最新的兼容 jest 和其他工具更新到最新的 angular13?

我不明白的是 Angular 版本和 nx 版本之间的联系。这两者在版本号方面有何联系?

此致

angular nrwl-nx

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

Angular6服务工作者和后台同步

似乎angular6不支持与服务工作者进行后台同步.在角度服务中没有任何库的情况下执行此操作需要执行哪些步骤?

https://developers.google.com/web/updates/2015/12/background-sync

如何以及在何处直接在angular6应用程序中访问WorkerGlobalScope,以便可以完成后台同步:

self.addEventListener('sync', function(event) {
  if (event.tag == 'myFirstSync') {
    event.waitUntil(doSomeStuff());
  }
});
Run Code Online (Sandbox Code Playgroud)

问题是角度CLI生成servicworker文件(ngsw-worker.js).有没有办法注入/修改 /扩展这个文件?是的,我可以手动编辑文件ngsw-worker.js或使用其他花哨技巧.有正式的方法吗?

angular-service-worker angular6

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

WPF ClickOnce和部分信任问题

如何让我的应用程序部署工作?

我使用Visual Studio 2010创建了一个新的简单WPF项目,并在项目的属性中进行了以下修改: - >签名:创建测试证书并将两个程序集都标记为清单.没有选中"仅延迟签名"框 - >安全性:选中框"启用单击一次安全设置"和单选按钮"这是部分信任设置".区域:"本地内联网". - >安全性,高级:使用所选的安全设置调试此应用程序(我选择此项).

开始调试时,我收到类型'System.Security.Permissions.SecurityPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'权限的请求失败.

安装时,将安装应用程序,但启动它时没有任何反应.在另一台计算机上,将显示bla bla已停止工作(启动实用程序).

操作系统:Windows 7.

通过一些实验,我发现将标志UnmanagedCode添加到SecurityPermission解决了这个问题.为什么需要一个简单的WPF应用程序(一个新创建的hello world)来调用非托管代码?这是一个像火山一样大的安全漏洞.

谢谢你的任何提示

deployment wpf clickonce

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

angular2自定义模板验证程序具有过时值

我现在卡住了一段时间,出现以下问题.我正在实现一个角度2自定义验证器,它只检查一个数字是否在一个范围内.像这样使用,一切正常:

<input type="text" id="doseSimple" class="form-control"
       required 
       name="doseSimple" 
       [(ngModel)]="doseSimple"
       #doseControl ="ngModel"
       validateRange
       from="2"
       to="20"
       >

<div *ngIf="doseControl.errors && (doseControl.dirty || doseControl.touched)">
   <span *ngIf="doseControl.errors.tooSmall">Too small</span>
   <span *ngIf="doseControl.errors.tooBig">Too big</span>
</div> 
Run Code Online (Sandbox Code Playgroud)

就我而言,验证有点复杂.有一个下拉列表.from和to值取决于下拉列表的选择.只有一个附加到下拉列表的事件设置doseFrom doseTo属性:

  <input type="text" id="name" class="form-control"
         required 
         name="doseComplex" 
         [(ngModel)]="doseComplex"
         #doseComplexControl ="ngModel"
         validateRange
         [from]="doseFrom"
         [to]="doseTo"
         >
  <div *ngIf="doseComplexControl.errors && (doseComplexControl.dirty || doseComplexControl.touched)">
     <span *ngIf="doseComplexControl.errors.tooSmall">Too small</span>
     <span *ngIf="doseComplexControl.errors.tooBig">Too big</span>
  </div> 
Run Code Online (Sandbox Code Playgroud)

验证验证值,但是从选择之前.from和to的值就像是落后的一步.如何解决?

我创建了一个用于显示问题的plunker:https://plnkr.co/edit/C0sbL8pRwsZcEZ5r1ODY?p = preview

validation typescript angular

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

再次小数与双精度

我支持金融 .net 应用程序。有很多关于在金融方面使用十进制数据类型的建议。

现在我被这个问题困住了:

decimal price = 1.0m/12.0m;
decimal quantity = 2637.18m;
decimal result = price * quantity;  //results in 219.76499999999999999999999991
Run Code Online (Sandbox Code Playgroud)

问题是向客户收取的正确值是 219.77(舍入函数,MidpointRounding.AwayFromZero),而不是 219.76。

如果我将所有内容更改为双倍,它似乎有效:

double price = 1.0/12.0;
double quantity = 2637.18;
double result = price * quantity;  //results in 219.765
Run Code Online (Sandbox Code Playgroud)

我要把所有东西都改成双倍吗?分数还会有其他问题吗?

我认为这个问题与Difference Betweendecimal, float and double in .NET?不同。因为它并没有真正向我解释为什么使用更精确的数据类型十进制的结果比使用更少字节的双精度数据类型的结果更不准确(在上面的示例中)。

.net c# math

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