Tag: C#的

C# – 如何确定一个types是一个数字

有没有办法确定一个给定的.Nettypes是否是一个数字? 例如: System.UInt32/UInt16/Double都是数字。 我想避免Type.FullName上的一个长开关的情况。

ASP.NET自定义validation程序客户端和服务器端validation不会触发

这在我之前没有发生,但由于某种原因,客户端和服务器端validation事件都没有被触发: <asp:TextBox ID="TextBoxDTownCity" runat="server" CssClass="contactfield" /> <asp:CustomValidator ID="CustomValidator2" runat="server" EnableClientScript="true" ErrorMessage="Delivery Town or City required" ClientValidationFunction="TextBoxDTownCityClient" ControlToValidate="TextBoxDTownCity" OnServerValidate="TextBoxDTownCity_Validate" Display="Dynamic" > </asp:CustomValidator> 服务器端validation事件: protected void TextBoxDTownCity_Validate(object source, ServerValidateEventArgs args) { args.IsValid = false; } 客户端validation事件: function TextBoxDCountyClient(sender, args) { args.IsValid = false; alert("test"); } 我认为至less在服务器端validation会触发,但不。 这从来没有发生过我。 这真的让我难住。 我看着输出,ASP.NET正在识别客户端function: ASP.NET JavaScript输出: var ctl00_ctl00_content_content_CustomValidator2 = document.all ? document.all["ctl00_ctl00_content_content_CustomValidator2"] […]

如何跳出C#中的foreach循环?

如果其中一个元素满足要求,我如何摆脱C#中的foreach循环? 例如: foreach(string s in sList){ if(s.equals("ok")){ //jump foreach loop and return true } //no item equals to "ok" then return false }

无法将lambdaexpression式转换为“string”types,因为它不是委托types

我正在使用像这样的LINQ lambdaexpression式: int Value = 1; qryContent objContentLine; using (Entities db = new Entities()) { objContentLine = (from q in db.qryContents where q.LineID == Value orderby q.RowID descending select q).FirstOrDefault(); } 但是,我收到以下错误: 无法将lambdaexpression式转换为“string”types,因为它不是委托types

在字母表中生成一个字母数组

有一个简单的方法来生成一个包含在C#中的字母表字母数组? 手工操作并不难,但是我想知道是否有内置的方法来做到这一点。

Delphi XE6在iOS中链接C代码

我已经使用需要C代码的Delphi XE6在Android上构build了一个应用程序。 但是在iOS上我无法使它工作。 我怀疑这个问题与arm/拇指状态有关,但我不确定。 从任何一个系统调用Pascal的C代码都没有问题。 但是,如果C代码callback一个Pascal过程,则iOS会生成一个"bad system call (12)" 这是pascal代码: function testarm(a,b:integer):integer; cdecl; external "testC.o"; Procedure testC; Begin testarm(1,2); end; function BackToPascal(a,b:integer): integer; cdecl; Begin result := a+b; end; …… exports BackToPascal; 这里是C代码: extern int BackToPascal(int a,int b); extern int testarm(int a,int b) { int i; i = BackToPascal(a,b); return i+1; } 在Android上,这是我如何编译(这是工作): …"arm-linux-androideabi-gcc.exe" -c […]

lambdaexpression式中的枚举编译方式不同; 重载解决scheme改进的后果?

在尝试Visual Studio 2015 RC时,我收到了以前工作代码的运行时错误。 给定作为Expression<>传递给函数的lambda (x => x.CustomerStatusID == CustomerStatuses.Active) ,debugging器在expression式树中显示差异。 以前它编译为: .Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x) { (System.Int32)$x.CustomerStatusID == 0 } 但在C#6.0中,现在编译为 .Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x) { (System.Int32)$x.CustomerStatusID == (System.Int32).Constant<Services.DataClasses.CustomerStatuses>(Active) } 虽然我的树遍历代码的修复是直截了当的,额外的细节是赞赏,有没有人知道任何其他陷阱像这样漂浮? 或者,有没有人有链接的重载分辨率如何改善的具体细节的信息? 我找不到任何东西。

.NET YAML库

任何人都知道.NET的轻量级YAML库? 最好是来源(在C#中),以便我可以直接编译到我的二进制文件,而不是有另一个dll的依赖。

在C中使用restrict关键字的规则?

我试图了解何时何时不使用C中的restrict关键字,以及在什么情况下它提供了实际的好处。 阅读后,“ 解密限制关键字 ”(提供了一些使用经验的规则),我得到的印象是,当一个函数传递指针时,必须考虑到指向的数据可能重叠的可能性(别名)与任何其他parameter passing给函数。 给定一个函数: foo(int *a, int *b, int *c, int n) { for (int i = 0; i<n; ++i) { b[i] = b[i] + c[i]; a[i] = a[i] + b[i] * c[i]; } } 编译器必须在第二个expression式中重新加载c ,因为可能b和c指向相同的位置。 它也必须等待b被存储之前,它可以加载a相同的原因。 然后它必须等待a被存储,并且必须在下一个循环开始时重新加载b和c 。 如果你这样调用函数: int a[N]; foo(a, a, a, N); 那么你可以看到为什么编译器必须这样做。 有效地使用restrict告诉编译器,你永远不会这样做,这样它可以放弃c的冗余负载,并加载之前b存储。 在另一个SOpost中,Nils Pipenbrinck提供了这个场景的一个工作示例,展示了性能优势。 到目前为止,我已经认识到,对传递给不会被内联的函数的指针使用restrict是个好主意。 显然,如果代码被内联,编译器可以发现指针不重叠。 […]

Linux上可怜的memcpy性能

我们最近购买了一些新的服务器,并且遇到可怜的memcpy性能。 与我们的笔记本电脑相比,memcpy的性能比服务器慢3倍。 服务器规格 底盘和Mobo:超级微型1027GR-TRF CPU:2x Intel Xeon E5-2680 @ 2.70 Ghz 内存:8x 16GB DDR3 1600MHz 编辑:我也在另一台服务器上testing稍高的规格,并看到与上述服务器相同的结果 服务器2规格 底盘和Mobo:超级微型10227GR-TRFT CPU:2x Intel Xeon E5-2650 v2 @ 2.6 Ghz 内存:8x 16GB DDR3 1866MHz 笔记本电脑规格 机箱:联想W530 CPU:1x Intel Core i7 i7-3720QM @ 2.6Ghz 内存:4x 4GB DDR3 1600MHz 操作系统 $ cat /etc/redhat-release Scientific Linux release 6.5 (Carbon) $ uname -a […]