草庐IT

delete-non-virtual-dtor

全部标签

c# - 在 Directory.Delete 之后,Directory.Exists 有时会返回 true 吗?

我的行为很奇怪。我有,Directory.Delete(tempFolder,true);if(Directory.Exists(tempFolder)){}有时Directory.Exists返回true。为什么?可能是资源管理器打开了吗? 最佳答案 Directory.Delete调用WindowsAPI函数RemoveDirectory.记录观察到的行为:TheRemoveDirectoryfunctionmarksadirectoryfordeletiononclose.Therefore,thedirectoryisnot

c# - Entity Framework : Alternate solution to using non primary unique keys in an association

我知道EntityFramework不允许您使用非主唯一键作为外键关联从数据库生成模型。我可以手动修改EDMX吗?如果是这样,有人可以给我一个例子或引用吗?如果不是,还有其他可能吗?最简单的例子:这是表的DDL。您会注意到我有一个从PersonType.TypeCode到Person.TypeCode的外键CREATETABLE[dbo].[PersonType]([PersonTypeId][int]NOTNULL,[TypeCode][varchar](10)NOTNULL,[TypeDesc][varchar](max)NULL,CONSTRAINT[PK_PersonType]

C# 设计 : Why is new/override required on abstract methods but not on virtual methods?

为什么抽象方法需要new/override而虚方法不​​需要?示例1:abstractclassShapesClass{abstractpublicintArea();//abstract!}classSquare:ShapesClass{intx,y;publicintArea()//Error:missing'override'or'new'{returnx*y;}}编译器会显示这个错误:要使当前成员覆盖该实现,请添加override关键字。否则添加新关键字示例2:classShapesClass{virtualpublicintArea(){return0;}//itisvirt

c# - 低级差异 : non-static class with static method vs. 静态类与静态方法

我想知道使用具有静态方法的非静态类与具有相同静态方法的静态类的一般好处(或缺点)是什么,除了我不能使用非静态类中的静态方法作为扩展方法。例如:classNonStaticClass{publicstaticstringGetData(){return"Thiswasinvokedfromanon-staticclass.";}}与此相比:staticclassStaticClass{publicstaticstringGetData(){return"Thiswasinvokedfromastaticclass.";}}使用一种方法优于另一种方法对性能/内存有何影响?注意:假设我不需要

c# - File.Delete 不删除文件

我正在尝试删除一个文件,但下面的代码并没有这样做。它不会抛出异常,但文件仍然存在。这可能吗?try{File.Delete(@"C:\File.txt");}catch(Exceptione){Console.WriteLine(e);}如果无法删除文件,应该打印出异常,但实际上并没有。这是否应该静默失败(如File.Delete方法吞没任何错误)? 最佳答案 如果指定的文件不存在,File.Delete不会抛出异常。[某些以前版本的MSDN文档错误地指出它确实如此]。try{stringfilename=@"C:\File.txt

c# - File.Delete() 与 FileInfo.Delete()

使用File对象的静态方法与创建新的FileInfo对象并调用这些方法有很大区别吗? 最佳答案 唯一的区别是File必须解析指定的路径(假设它是相对的),而FileInfo应该已经有解析的路径。 关于c#-File.Delete()与FileInfo.Delete(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7773122/

c# - Entity Framework 6 : Code First Cascade delete

所以这里有几个类似的问题,但我仍然无法确定在我的简化场景中到底缺少什么。假设我有以下表格,巧妙地以我自己的名字命名:'JohnsParentTable'(Id,Description)'JohnsChildTable'(Id,JohnsParentTableId,Description)生成的类看起来像这样publicclassJohnsParentTable{publicintId{get;set;}publicstringDescription{get;set;}publicvirtualICollectionJohnsChildTable{get;set;}publicJohns

c# - "public new virtual void Method()"是什么意思?

什么时候使用新的虚关键字修饰方法?什么是感情?比如定义一个接口(interface),然后添加一个类来继承这个接口(interface)。而是使用新的virtual来实现接口(interface)方法。interfaceIPrinter{voidPrint();}publicclassPrinterOne:IPrinter{publicvoidPrint(){Console.WriteLine("PrinterOne.");}}publicclassPrinterTwo:PrinterOne{publicnewvirtualvoidPrint(){Console.WriteLine("

c# - 林克 : Delete and Insert same Primary Key values within TransactionScope

我想在一个事务中用新记录替换数据库中的现有记录。使用TransactionScope,我有using(varscope=newTransactionScope()){db.Tasks.DeleteAllOnSubmit(oldTasks);db.Tasks.SubmitChanges();db.Tasks.InsertAllOnSubmit(newTasks);db.Tasks.SubmitChanges();scope.Complete();}我的程序抛出System.InvalidOperationException:Cannotaddanentitythatalreadyexis

c# - .NET 框架中是否有针对不同 Web 方法类型(GET、PUT、POST、DELETE、HEAD)的常量?

我刚刚在创建RESTfulWCF服务时注意到WebInvoke属性上的Method参数区分大小写(需要大写)。所以,[WebInvoke(Method="Delete")]不等于[WebInvoke(Method="DELETE")]这个错误导致了ProtocolException:System.ServiceModel.ProtocolException:Theremoteserverreturnedanunexpectedresponse:(405)MethodNotAllowed.我想知道我应该使用.NET框架中的一组常量来代替上面示例中的“DELETE”。我当然可以定义我自己的