草庐IT

Peek-and-select

全部标签

c# - 面向对象编程 : Separation of Data and Behavior

最近我们讨论了类中的数据和行为分离。通过将域模型及其行为放入单独的类中来实现数据和行为分离的概念。但是,我不相信这种方法的假定好处。尽管它可能是由某个“伟人”创造的(我认为是MartinFowler,尽管我不确定)。我在这里举一个简单的例子。假设我有一个包含Person及其方法(行为)数据的Person类。classPerson{stringName;DateTimeBirthDate;//constructorPerson(stringName,DateTimeBirthDate){this.Name=Name;this.BirthDate=BirthDate;}intGetAge(

C#.NET : Convert Icon to byte[] and back again

如何在System.Drawing.Icon类型和byte[]之间进行转换?我正在寻找可以(希望)在.NET2中工作的简单方法。 最佳答案 你通过MemoryStream,基本上:publicstaticbyte[]IconToBytes(Iconicon){using(MemoryStreamms=newMemoryStream()){icon.Save(ms);returnms.ToArray();}}publicstaticIconBytesToIcon(byte[]bytes){using(MemoryStreamms=ne

c# - 具有路由属性的模糊 Controller 名称 : controllers with same name and different namespace for versioning

我正在尝试添加API版本控制,我的计划是为不同命名空间中的每个版本创建一个Controller。我的项目结构是这样的(注意:每个版本没有单独的区域)Controllers||---Version0||||-----ProjectController.cs||-----HomeController.cs||---Version1||-----ProjectController.cs|-----HomeController.cs我正在为路由使用RoutingAttribute。因此,Version0中的ProjectController具有路由功能namespaceMyProject.Co

c# - 在 LINQ Select 中赋值?

我有以下查询:drivers.Select(d=>{d.id=0;d.updated=DateTime.Now;returnd;}).ToList();drivers是一个包含不同ID和更新值的列表,因此我正在更改Select中的值,但这是执行此操作的正确方法。我已经知道我不会将驱动程序重新分配给驱动程序,因为Resharper对此有所提示,所以我想如果这样会更好:drivers=drivers.Select(d=>{d.id=0;d.updated=DateTime.Now;returnd;}).ToList();但这仍然是有人应该为驱动程序列表中的每个元素分配新值的方式吗?

c# - 为什么 Linq to Entity Select Method 翻转投影列表属性?

我对linqtoentity/Json/MVC.net4有最奇怪的行为我有这段代码,出于某种奇怪的原因,所有其他列表的属性顺序都颠倒了。varoutput=db.FooBar.Where(a=>a.lookupFoo==bar).Select(a=>newList{//value'sarethesameperrow//fordemonstrationsake.a.fooBarA,//Always12.34a.fooBarB,//Always12.34a.fooBarC,//Always0a.fooBarD//Always0//lazycastingtodoublefromint});r

c# - 空条件运算符 and !=

随着Null-ConditionalOperators的引入在C#中,对于以下评估,if(instance!=null&&instance.Val!=0)如果我这样重写,if(instance?.Val!=0)如果实例是空引用,它将被评估为true;它表现得像if(instance==null||instance.Val!=0)那么使用这种新语法重写评估的正确方法是什么?编辑:instance是从JSON反序列化的大对象的字段。类似这样的代码有好几段,首先检查字段是否在JSON中,如果是,则检查Val属性是否不等于常量,只有两个条件都为真,才做一些操作。代码本身可以重构,使逻辑流程更“

C# MVC : Performance and Advantages of MVC Html Helpers vs. View 中的直接 HTML

我想知道Html助手对C#ASP.NETMVCView有什么样的性能影响,尤其是在设置属性参数时,以及它们总体上有什么样的优势(为什么要使用它们?)使用Html助手:直接HTML:"/>我有很多页面包含5到15个这样的输入。最重要的是,HtmlHelpers允许您呈现表单(想想Html.BeginForm())等,因此您最终可能会调用20次甚至更多的HtmlHelper。我认为他们中的一些人也使用反射,例如当您设置类似上面禁用的属性时。这样做不会对性能产生巨大影响吗?为什么使用这些助手被认为是更好的做法?请有人给我一个充分的理由:)我想使用它们,但我真的很担心它们对性能的影响。使用Ht

C#:实现 NetworkStream.Peek?

目前,C#中没有NetworkStream.Peek方法。实现这种功能与NetworkStream.ReadByte类似的方法的最佳方法是什么,只是返回的byte实际上并未从Stream中删除? 最佳答案 我遇到了同样的“查看魔数(MagicNumber)然后决定将流发送到哪个流处理器”的要求,不幸的是我无法摆脱这个问题-正如对Aaronaught的回答的评论中所建议的那样-通过传递已经在单独的参数中将字节消耗到流处理方法中,因为这些方法是给定的,他们期望System.IO.Stream而不是其他。我通过创建一个或多或少通用的包装流

c# - Linq order by aggregate in select { }

这是我正在处理的一个:varfStep=frominspinsq.Inspectionswhereinsp.TestTimeStamp>dStartTime&&insp.TestTimeStamp我想按所选投影中的一个或多个字段排序。 最佳答案 最简单的更改可能是使用查询延续:varfStep=frominspinsq.Inspectionswhereinsp.TestTimeStamp>dStartTime&&insp.TestTimeStamp老实说,这基本上等同于使用“let”——真正的区别在于let引入了一个新范围变量,而查

C# : How to pause the thread and continue when some event occur?

当某些事件发生时,如何暂停线程并继续?我希望线程在单击按钮时继续。有人告诉我thread.suspend不是暂停线程的正确方法。还有其他解决方案吗? 最佳答案 你可以使用System.Threading.EventWaitHandle.EventWaitHandle会阻塞,直到收到信号为止。在您的情况下,它将通过按钮单击事件发出信号。privatevoidMyThread(){//dosomestuffmyWaitHandle.WaitOne();//thiswillblockuntilyourbuttonisclicked//co