草庐IT

c# - 桥梁模式与策略模式

我知道,这个问题被问过很多次了,但我做了一些研究,但还是没弄明白,也许你能帮我解决这个问题:正如多次声明的那样,UML几乎是相同的。此外,实现和想法或多或少是相同的:您定义一个接口(interface),而不是子类型,它封装了一些逻辑并让它传递给抽象。所以,即使是Microsoft博客专家https://blogs.msdn.microsoft.com/gyanjadal/2015/01/05/difference-between-strategy-and-bridge-patterns/说:Thesimpleansweris“Theyaresimilarbutdifferent”.T

c# - Dominion AI 播放器的正确 OOP 结构

我一直在尝试为流行的纸牌游戏Dominion(http://www.boardgamegeek.com/boardgame/36218/dominion)制作AI玩家。如果您不熟悉这款游戏,它基本上是Magic:TheGathering的一个非常精简的表亲,其中有一个很大的纸牌库,上面有不同的规则。在游戏过程中,玩家购买这些卡牌并将它们合并到他们的套牌中。从机器学习的角度来看,我对这款游戏很感兴趣-我想让机器人互相对抗,让它们玩数百万个游戏,并尝试挖掘数据洞察力,让它们玩得更好。我不确定如何将游戏规则(印在每张卡片上的逐字说明)与核心AI决策逻辑分开。我开始的明显路径是为每张卡片创建一

C# - 在声明中设置初始值的缺点

这样的类(class)有什么缺点吗:classExample1{protectedstringUserId=(string)Session["user"];}//versusclassExample2{protectedstringUserId;publicExample2(){UserId=(string)Session["user"];}}如果我一直想设置这个值,Example1有什么缺点吗?更新:Session["user"]在Global.asaxSession_Start中设置。所以如果这失败了。无论如何都不应该起作用。 最佳答案

c# - 在 ASP.Net Web 应用程序数据层中实现静态方法是否安全?

我正在开发一个Web应用程序,它是一个B2B门户应用程序。我的应用程序遵循2层架构。下面是一段代码,将公司注册到我的网站//////RegisterCompanywiththebusinessbazaar/////////publicstaticboolRegisterCompany(Registrationregistration){boolresult;using(varhelper=newDbHelper()){_commandText="sp_RegisterCompany";varsuccess=newSqlParameter("@Success",SqlDbType.Bit

c# - OOP中级教程

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我非常渴望深入学习OOP概念,最重要的是如何将它们应用到“现实生活”中。到目前为止,我已经在网上阅读了很多引用资料和教程,但它们都缺少一些东西:它们没有提供一种方法来完全理解如何真正使用面向对象编程。事实上,似乎大多数教程都关注OOP“语法”,而不是“OOP设计的艺术”。由于OOP是一组概念/想法/最佳实践,用于思考问题并以提高生产力的方式解决该问题,我真的想要更多。我想要一些东西来帮助我作为

c# - 实现领域驱动设计

有人在使用领域驱动设计的技术吗?我最近读了EricEvans的同名书(好吧,大部分!),并且很想听听任何在项目中(特别是在C#/C++中)实现全部/部分内容的人的意见我一直保持这个问题的开放性,因为我希望看到尽可能多的评论,但我有几个特别的问题:1-如果语言支持,值类型是否应该是真正的“值类型”?例如C#中的结构2-C#中是否有任何功能可以使语言和模型之间的关联更加清晰(例如,这是一个实体,这是一个聚合等) 最佳答案 是的!我在我的项目中使用DDD(但是I'mbiased!)请记住,领域驱动设计提供的是指南,而不是严格的答案。只有在

c# - 当我们创建接口(interface)对象时会发生什么?

这个问题在这里已经有了答案:UsingInterfacevariables(12个答案)关闭9年前。我是C#接口(interface)的新手。那么有人可以解释一下当我们创建接口(interface)对象时实际发生了什么吗?我知道为什么我们有其他语言的接口(interface),但无法真正理解为什么C#允许创建接口(interface)的对象(实例)的逻辑?如果接口(interface)没有函数定义或变量,那么如何创建对象?我一直在论坛上搜索,但找不到要点。这是我在界面上找到的教程http://www.c-sharpcorner.com/uploadfile/6897bc/interfa

c# - Resharper 的 "Object allocation (evident)"是什么意思?

Resharper在我的代码中突出显示新关键字并提示“对象分配(明显)”。这是什么意思? 最佳答案 SourceHighlightsobjectcreationexpressionswhereexplicitallocationhappens.这意味着它可用于通知您有关新分配的信息,从而减少C#程序热路径中的堆分配数量。 关于c#-Resharper的"Objectallocation(evident)"是什么意思?,我们在StackOverflow上找到一个类似的问题:

c# - 测试一个方法是否被覆盖?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:DetectifamethodwasoverriddenusingReflection(C#)有没有办法判断一个方法是否被覆盖?例如publicclassFoo{publicvirtualvoidDoSomething(){}publicvirtualintGimmeIntPleez(){return0;}}publicclassBabyFoo:Foo{publicoverrideintGimmeIntPleez(){return-1;}}是否可以反射(reflect)BabyFoo并判断GimmeIntPl

c# - 字段 xxx 从未分配给,并且始终具有默认值 null

有人知道这是什么问题吗?我在privatestaticQuantizerquantit;上收到此警告Fieldxxxisneverassignedto,andwillalwayshaveitsdefaultvaluenull我不知道该怎么做才能修复,因为当我尝试使用quantit.Quantize()时debug说:“对象引用未设置到对象的实例。”并指向au=quantit.Quantize();代码:publicclassQuantization:System.Windows.Forms.Form{privatestaticQuantizerquantit;privateButton