草庐IT

is_enum_class

全部标签

c# - Entity Framework new transaction is not allowed because there are other threads running in the session,多线程保存

我正在尝试将多线程进程的日志保存在数据库中,但出现以下错误:不允许新事务,因为session中还有其他线程在运行。在每个胎面我都有这个功能:internalboolWriteTrace(IResultresult,stringmessage,bytetype){SPC_SENDING_TRACEtrace=newSPC_SENDING_TRACE(message,Parent.currentLine.CD_LINE,type,Parent.currentUser.FULLNAME,Parent.guid);Context.SPC_SENDING_TRACE.AddObject(trac

c# - 枚举器实现 : Use struct or class?

我注意到List将其枚举器定义为struct,而ArrayList将其枚举器定义为class.有什么不同?如果我要为我的类(class)写一个枚举器,哪个更好?编辑:使用yield无法满足我的要求,所以我正在实现自己的枚举器。也就是说,我想知道遵循List的路线是否会更好。并将其作为结构实现。 最佳答案 像其他人一样,我会选择一个类(class)。可变结构是讨厌的。(正如Jared所建议的那样,我会使用迭代器block。手动编写枚举器代码很费力才能正确。)参见thisthread例如,列表枚举器是一个导致问题的可变结构......

c# - 可访问性不一致 : return type is less accessible than method C#

好吧,这真的很奇怪。我有一个私有(private)成员,我想将它用于Form2。我创建了一个公共(public)静态方法,以便我可以将该成员放入Form2。这是我的代码:privatestaticAppControllerappController;privateBreadRepositorybreadRep;privateCakeRepositorycakeRep;privateSandwichRepositorysandwichRep;publicForm1(){InitializeComponent();breadRep=newBreadRepository();cakeRep=

c# - 食人族类(class)

一段时间以来,我一直在努力思考为什么允许编译某些“食人族”类的原因。在我继续之前,也许我应该解释一下我所说的“食人者”类。不确定这个术语是我刚刚发明的,还是它已经存在了一段时间,或者我是否正确使用了它,但现在这并不重要。我基本上称食人类为消耗自身的类。换句话说,一个类的接口(interface)声明了它自己类型的成员。例如:classFoo{publicFooSomeFoo;}正如您在上面看到的,Foo类有一个Foo类型的成员(它本身)。现在,我第一次看到这个(很久以前)我没想到它会编译,但令我惊讶的是它确实编译了。我不认为这会编译的原因是因为对我来说这尖叫着某种类型的递归噩梦。为了让

c# - ClickOnce 安装期间出现 FileNotFoundException,缺少 HKCU\Software\Classes\Software

我们的一位用户对ClickOnce有一个非常严重的问题。该错误是一个经典错误:Followingerrorsweredetectedduringthisoperation.*[14/10/201101:40:25]System.IO.FileNotFoundException-Thesystemcannotfindthefilespecified.(ExceptionfromHRESULT:0x80070002)-Source:System.Deployment-Stacktrace:atSystem.Deployment.Internal.Isolation.IsolationInt

c# - EF 5 代码迁移错误 : "There is already an object named _____ in the database"

在进行EF5代码迁移时遇到了一个反复出现的奇怪问题,现在让我无法工作。尝试运行update-database并收到此错误:Thereisalreadyanobjectnamed'RequestStatus'inthedatabase.详细的日志转储:PM>update-database-vUsingStartUpproject'LicensingWorkflow'.UsingNuGetproject'LicensingWorkflow'.Specifythe'-Verbose'flagtoviewtheSQLstatementsbeingappliedtothetargetdataba

c# - 为什么具有 T : class result in boxing? 约束的泛型方法

这个问题在这里已经有了答案:BoxingwhenusinggenericsinC#(2个答案)关闭3年前。为什么将T限制为类的泛型方法会在生成的MSIL代码中包含装箱指令?我对此感到非常惊讶,因为既然T被限制为引用类型,那么生成的代码应该不需要执行任何装箱。这是C#代码:protectedvoidSetRefProperty(refTpropertyBackingField,TnewValue)whereT:class{boolisDifferent=false;//forreferencetypes,weuseasimplereferenceequalitychecktodeterm

c# - T[].Contains for struct 和 class 表现不同

这是一个后续问题:List.ContainsandT[].ContainsbehavingdifferentlyT[].Contains当T时表现不同是类和结构。假设我有这个结构:publicstructAnimal:IEquatable{publicstringName{get;set;}publicboolEquals(Animalother)//在这里,通用Equals如我所料被正确调用。但是对于类:publicclassAnimal:IEquatable{publicstringName{get;set;}publicboolEquals(Animalother){return

c# - cocos2d-xna : sprite is not drawn if using instance of a class inherited from sprite

我有一个基于Cocos2DXNA和MonoGame的游戏项目。我想在CCSprite类中添加一些自定义逻辑,所以我创建了一个继承自CCSprite的类。我添加了一个虚拟自动属性并尝试使用此类,但出于某种原因,作为我的自定义Sprite类实例创建的Sprite未显示在图层上,而作为CCSprite类实例的Sprite完全没问题。代码如下所示:publicclassSprite:CCSprite{publicstringSomeProp{get;set;}}...line1:varmySprite1=newSprite("texture.png");line2:varmySprite1=n

c# - LinqToSQL 错误 : Operation is not valid due to the current state of the object

在更新命令期间,我收到以下错误:Operationisnotvalidduetothecurrentstateoftheobject我试图从更新命令中删除一列并且它工作正常。此列是一个FK,与其他工作正常的FK相似。这是执行更新的代码:ti.NumeroTitolo=titolo.Numero;ti.RKTipoTitoloGenereTitolo=titolo.RkTipoTitoloGenereTitolo;ti.RKBanca=titolo.RkBanca;ti.DataScadenza=titolo.DataScadenza;ti.RKTipoEsito=titolo.RkTi