草庐IT

Markdown_use

全部标签

c# - 将 using 语句与 WinForms 一起使用……好的做法?

我理解使用using语句背后的概念和原因,我将它用于文件资源和远程连接之类的东西,我想知道这是否是一种好的做法在WinForm窗体和对话框中使用using语句?using(MyDialogdlg=newMyDialog()){if(dlg.ShowDialog()==EDialogResult.OK){//DoSomething}}谢谢! 最佳答案 仅限对话框。但这是一个非常好的做法。您会发现它在Show()周围不起作用,因为using(){}只能在1个方法中使用,您永远不想在Show()之后立即再次关闭.

c# - Linq 和相等运算符 : Expression of type 'System.Int32' cannot be used for parameter of type 'System.Object'

我试图重写C#中的相等(==)运算符来处理任何类型与自定义类型的比较(自定义类型实际上是null周围的包装器/框)。所以我有这个:internalsealedclassNothing{publicoverrideboolEquals(objectobj){if(obj==null||objisNothing)returntrue;elsereturnfalse;}publicstaticbooloperator==(objectx,Nothingy){if((x==null||xisNothing)&&(y==null||yisNothing))returntrue;returnfal

c# - Async/Await VS Task.Run : When to use ? 如何使用?

好吧,我希望我掌握了async/await的基础知识,但仍有一些问题在我脑海中挥之不去。但是现在我说的就是这个问题了。假设在这个简单的例子中staticvoidMain(string[]args){Method();Console.WriteLine("MainThread");Console.ReadLine();}publicasyncstaticvoidMethod(){awaitTask.Run(newAction(LongTask));Console.WriteLine("NewThread");}publicstaticvoidLongTask(){Thread.Sleep

c# - "using"语句与花括号

我想知道为什么我们在C#中使用using语句。查了一下,发现是用来执行语句,然后清理对象的。所以我的问题是:如果我们打开和关闭大括号({})来定义范围,这不是一回事吗?使用语句:using(SqlConnectionconn=newSqlConnection(connString)){SqlCommandcmd=conn.CreateCommand();cmd.CommandText="SELECT*FROMCustomers";conn.Open();using(SqlDataReaderdr=cmd.ExecuteReader()){while(dr.Read())//DoSome

c# - 移动/更新命名空间声明时如何阻止 ReSharper 删除未使用的 Using 语句?

当使用ReSharper移动/更新命名空间声明时,是否有办法阻止ReSharper删除未使用的Using语句?换句话说,如果我有这样一个类:usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.ServiceModel;usingSystem.Text;namespaceFoo.Bar{classMyClass{ListNames{get;set;}}}我想使用ReSharper将它移动到Foo.Bar.Utilities命名空间,Resharper将删除所有未使用的Using语句并留给我:usingSystem.Co

c# - Linq 性能 : should I first use `where` or `select`

我在内存中有一个很大的List,来自一个具有大约20个properties的类。我想仅根据一个property过滤此列表,对于特定任务我只需要该property的列表。所以我的查询是这样的:data.Select(x=>x.field).Where(x=>x=="desiredvalue").ToList()先使用Select还是使用Where哪个性能更好?data.Where(x=>x.field=="desiredvalue").Select(x=>x.field).ToList()如果这与我将数据保存在内存中的数据类型或字段类型有关,请告诉我。请注意,我也需要这些对象来执行其他任

c# - 为什么 using(null) 在 C# 中是一个有效的案例?

有人可以向我解释为什么下面显示的代码在C#中有效并执行对Console.WriteLine的调用吗?using(null){Console.WriteLine("somethingishere")}它编译成(最后显示block)。如您所见,编译器决定不执行Dispose()方法并跳转到endfinally指令。IL_0013:ldnullIL_0014:ceqIL_0016:stloc.1IL_0017:ldloc.1IL_0018:brtrue.sIL_0021//brancheshereanddecidenottoexecuteDispose()IL_001a:ldnullIL_0

C# - using 语句的位置

我注意到很多来回讨论的一件事是using语句应该放在C#代码文件中的什么位置——无论是在最外层的范围内还是在命名空间内。我知道using语句的位置会影响该文件中引用的范围,但我不明白的是为什么在大多数情况下,有人会希望他们的using语句在他们的命名空间内。在几乎所有情况中,单个文件中只存在一个命名空间声明,因此限定using语句的范围似乎/(是?)无用。如果将多个类型和多个命名空间放在同一个文件中,那么using语句的作用域就非常有意义,但我仍然看到很多这样的情况,即使是在具有一个命名空间的文件中也是如此。为什么?usingSystem;namespaceMyNamespace{us

c# - 异常(HRESULT : 0x800AC472) when using Excel. 工作表。调用 Excel.Workbook.SaveAs 后选择

我正在打开一个xlsx文件并将每张纸保存到一个csv文件中。保存的相关代码如下:inti=0;foreach(Excel.Worksheetsinapp.ActiveWorkbook.Sheets){s.Select(true);//ErrorhereStringoutfile=outputpath+"("+i+")"+outputfilename+".csv";wkb.SaveAs(outfile,Excel.XlFileFormat.xlCSVMSDOS);++i;}输出文件名或路径没有问题,输出文件不存在。它保存前两张纸然后崩溃。我尝试使用具有4张纸的不同输入文件,它运行良好,所

c# - EF6 : Renaming namespace using Code First Migrations

我可以重命名我整个项目的命名空间(当然包括:DbContext类、迁移配置类等)而不破坏任何东西或不必重新创建我的所有迁移?比如说,我有ProjectMyProject,命名空间是Foo.MyProject我的配置类在Foo.MyProject.Migrations假设我想为Bar重命名Foo命名空间,当然我的Configurations命名空间现在将是Bar.MyProject.Configurations是否有任何正确的方法可以做到这一点并保持我当前的所有迁移仍然有效?这些方法是否涉及手动编辑___MigrationHistory表或其他内容?(我一眼就看到了ContextKey列