Tag: 理论

界面还是抽象类?

对于我的新的宠物项目,我有一个devise问题,这已经决定了,但我也想要一些其他的意见。 我有两个类(简体): class MyObject { string name {get;set;} enum relation {get;set;} int value {get;set;} } class MyObjectGroup { string name {get;set;} enum relation {get;set;} int value {get;set;} List<MyObject> myobjects {get;set;} } 后来在项目MyObjectGroup和MyObject应平等使用。 为此,我可以采取两种方式: 创build一个接口: IObject 创build一个抽象类: ObjectBase 我决定去接口的方式,我以后在代码中不能每次都写ObjectBase而只是为了方便而使用IObject ,但是这样做还有什么其他的IObject呢? 其次,如何在整个故事中添加IXmlSerializable ? 让接口从IXmlSerializableinheritance,还是在抽象基类中实现IXmlSerializable有更多的IXmlSerializable ?

为什么不允许在Asp.net MVC 2中的子操作中使用redirect结果

我使用Asp.Net Futures RenderAction方法进行了部分操作。 其中一些执行redirect之后,其中的表格已被处理。 现在,我升级到Asp.Net MVC 2 RC,它给了我一个错误“子操作不允许执行redirect操作”。 我检查了源代码,并发现引发exception的行。 为了解决这个问题,我可以做一个自定义的RedirectResult,但是在我之前我想了解为什么框架不允许它摆在首位。 必须有一个很好的理由,也许我不应该这样做。 任何人都知道这个限制的原因吗? 谢谢

为什么在标题中的C ++内联函数?

注意这不是一个关于如何使用内联函数或者它们如何工作的问题,更不是为什么它们按照它们的方式来完成。 类成员函数的声明不需要将函数定义为inline ,它只是函数的实际实现。 例如,在头文件中: struct foo{ void bar(); // no need to define this as inline } 那么为什么类函数的内联实现必须在头文件中呢? 为什么我不能把内联函数放在.cpp文件中? 如果我在哪里尝试将内联定义放在.cpp文件中,我会得到以下错误: error LNK2019: unresolved external symbol "public: void __thiscall foo::bar(void)" (?bar@foo@@QAEXXZ) referenced in function _main 1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe : fatal error LNK1120: 1 unresolved externals

PHP中的接口是什么?

接口允许您创build定义实现它的类的方法的代码。 但是,您不能将任何代码添加到这些方法。 抽象类允许您执行相同的操作,同时向该方法添加代码。 现在,如果你可以用抽象类实现相同的目标,为什么我们甚至需要接口的概念呢? 我已经被告知它必须与OO理论从C ++到Java,这是PHP的OO的东西是基于。 这个概念在Java中有用,但不在PHP中? 这只是一种避免在抽象类中散布占位符的方法吗? 我错过了什么吗?

什么是lambda(函数)?

对于一个没有comp-sci背景的人来说,在计算机科学世界里什么是lambda?

从recursion到迭代的方法

为了解决简单的问题,我在编程上花了很多年的时间用了很多recursion,但是我完全意识到有时候由于内存/速度的问题需要迭代。 所以,在很久以前的某个时候,我去试图找出是否有任何“模式”或文本书的方式来改变一个共同的recursion方法迭代,什么也没有发现。 或者至less没有什么,我能记得它会帮助。 有一般规定吗? 有没有“模式”?

在DB中存储图像 – 是或否?

所以我正在使用一个应用程序在数据库中存储图像。 你对此有什么看法? 我更喜欢在文件系统中存储位置,而不是将其直接存储在数据库中。 你认为什么是利弊?

“现代”正则表达式的认知力

真正的现代正则表达式实际上认可什么类型的语言? 每当有一个带有反向引用的无限长度捕获组(例如(.*)_\1 ),正则表达式现在就匹配一个非正则语言。 但是,它本身不足以匹配像S ::= '(' S ')' | ε S ::= '(' S ')' | ε – 匹配成对副本的上下文无关语言。 递归正则表达式(对我来说是新的,但我确信存在于Perl和PCRE中)至少可以识别大多数CFL。 有没有人做过或读过这方面的研究? 这些“现代”正则表达式的局限性是什么? 他们是否认可LL或LR语法的严格多于或者少于CFG? 或者是否存在可以被正则表达式识别但不是CFG的两种语言,反之亦然? 有关论文的链接将不胜感激。