草庐IT

不可避免

全部标签

c# - 如何避免 "Response.Redirect cannot be called in a Page callback"

我正在清理一些遗留框架代码,其中很大一部分只是通过异常编码。没有检查任何值以查看它们是否为空,因此会抛出和捕获大量异常。我已经清理了其中的大部分,但是,有一些错误/登录/安全相关的框架方法正在执行Response.Redirect,现在我们正在使用ajax,我们得到了很多"不能在页面回调中调用Response.Redirect。”我想尽可能避免这种情况。有没有办法以编程方式避免此异常?我正在寻找类似的东西if(Request.CanRedirect)Request.Redirect("url");请注意,Server.Transfer也会发生这种情况,因此我希望能够检查我是否能够执行R

c# - 什么是适用于 2D 点结构的 `GetHashCode()` 算法(避免冲突)

考虑以下代码:structVec2:IEquatable{doubleX,Y;publicboolEquals(Vec2other){returnX.Equals(other.X)&&Y.Equals(other.Y);}publicoverrideboolEquals(objectobj){if(objisVec2){returnEquals((Vec2)obj);}returnfalse;}//thiswillreturnthesamevaluewhenX,YareswappedpublicoverrideintGetHashCode(){returnX.GetHashCode()

c# - 通过避免文本框验证来关闭 C# windows 窗体

这是一个winformC#问题。我有一个带有验证事件监听器的文本框,用于根据正则表达式验证文本框的内容。验证后,如果输入的值不正确,我将显示消息框并取消事件,以便鼠标光标移回具有不正确值的文本框。当我从该文本框移出到其他按钮/文本框时,这工作正常。但是,当我输入不正确的值并关闭表单(使用右上角的关闭按钮)时,它会验证文本框内容并抛出消息框并且表单不会在我取消事件时关闭。问题是,当我单击表单右上角的X按钮时,我不希望验证被触发,因为我无论如何都要关闭表单。我怎样才能做到这一点?我会尽快发布代码片段。 最佳答案 要使用验证处理程序,例如

c# - 使用 Entity Framework 和 LINQ 查询大型数据集时如何避免内存溢出

我有一个处理所有数据库方法的类,包括EntityFramework相关的东西。当需要数据时,其他类可能会调用此类中的方法,例如publicListGetData(intstart,intend);数据库正在使用LINQtoEF进行查询,然后调用类可以遍历数据。但由于其他类无法访问EF中的实体,我需要对查询执行“ToList()”操作,并将完整的数据集提取到内存中。如果这个集合非常大(10到100GB)会怎样?是否有一种更有效的迭代方式,同时仍然保持松散耦合? 最佳答案 在Entity框架中处理大型数据集的正确方法是:使用EFv4和P

c# - 什么更好/更快? try catch 或避免异常?

我想知道,在通用编程中什么更好或/和更快?避免异常还是等待异常?避免异常是:stringa=null;list=someMethod();if(list.Length>0){a=list[0];}if(a!=null)...或者trycatch异常...stringa=null;try{a=someMethod()[0];catch{}if(a!=null)... 最佳答案 性能并不是这里最相关的问题。问题是,两者中的哪一个会导致程序更具可读性/可维护性/可测试性。您可以稍后再担心性能。一般来说,不要使用异常来进行流量控制。它们实际

C# regex 删除不可打印字符和控制字符,在混合了多种不同语言、unicode 字母的文本中

我很感激你的帮助,因为我不知道要使用哪个范围的字符,或者我是否在ruby​​中找到了像[[:cntrl:]]这样的字符类?通过不可打印,我的意思是删除所有未显示在ie输出中的字符,当一个人打印输入字符串时。请注意,我正在寻找c#正则表达式,我的代码没有问题 最佳答案 您可以使用删除所有控制字符和其他不可打印的字符s=Regex.Replace(s,@"\p{C}+",string.Empty);\p{C}Unicode类别类匹配所有控制字符,甚至是ASCII表之外的字符,因为在.NET中,Unicode类别类默认是Unicode识别

C#:显示一个不可见的窗体

我在C#中有以下代码:Formf=newMyForm();f.Visible=false;f.Show();f.Close();尽管有f.Visible=false,我还是看到了窗体的闪光,然后消失了。我需要做什么才能使此表单不可见?我需要在我的应用启动期间(不可见地)显示表单,因为这样做可以消除显示此表单时的冷启动延迟。 最佳答案 如果你想显示表单而不实际看到它,你可以这样做:publicForm1(){InitializeComponent();this.FormBorderStyle=System.Windows.Forms.

c# - Visual Studio 2017 xaml 设计器不可用

使用VisualStudioProfessional2017(版本15.226430.16),当我打开我开发的桌面UI的xaml文件时,我再也看不到xaml设计器(我只能看到原始xaml代码)。这是新行为,可能是由于我进行了系统清理,所以我可能删除了我需要的SDK或类似的东西?是否有任何我可以检查警告等的VisualStudio错误日志? 最佳答案 坦白说,你的情况和我的不一样。在我的情况下,这是因为Resharper。也许这对其他人有用。要做的是检查Resharper选项>环境>性能指南>禁用XAML设计器。必须设置为“忽略”或“

c# - 不可修改的变量

C#是否允许不能修改的变量?它就像一个const,但不必在声明时为其赋值,该变量没有任何默认值,但只能在运行时赋值一次(编辑:并且可能不是来自构造函数)。或者这是不可能的? 最佳答案 是的,在C#中有多种方法可以做到这一点。首先,什么是“变量”?变量是存储位置。局部变量、方法的形式参数(以及索引器、构造函数等)、静态和实例字段、数组元素和指针解引用都是变量。一些变量可以声明为“只读”。“只读”变量只能通过声明中的初始值设定项或构造函数更改一次。只有字段声明可以是只读的;C#不支持用户声明的只读局部变量。对只读变量有一定的限制,有助于

c# - 水平滚动条在 DataGridView 上不可见

我在Window窗体上有一个DataGridView,它填充了30列和数千行。ScrollBars属性设置为Both,但水平滚动条仍然不可见。即使我无法使用键盘上的箭头键滚动。我也通过将ScrollBars属性设置为Horizo​​ntal进行了尝试,但这没有任何区别。有什么建议吗?谢谢 最佳答案 伙计们,已经解决了。我在回答我自己的问题;它可能会在将来帮助某人。其中一列的Frozen属性设置为True。对于所有列都应为false。现在ScrollBar对我来说工作得很好。干杯 关于c#