是的,我知道我落后于时代,但我在这里得到的是一个古老的VB6编辑器应用程序,我相信没有人会很快升级到.NET.它使用了几个第三方DLL工具,因为它仍然使用旧的RichEdit控件,我基本上可以仅用这个工具来提升我自己的Bug场.
足够了,我正在试图看看我是否可以使用TDD,所以我可以开始为我需要修复的每个行为/功能编写单元测试,所以迟早我可以为这个工具提供一个完整的回归测试套件.即使在未来,如果我们升级到.NET,我认为我编写的大多数测试应该有助于验证正确的行为,并且应该可以升级到.NET版本,我想.
一些基本的谷歌搜索发送给我这个工具调用simplyVBunit,但我找不到足够的指南等让我开始,是的我不是那么精通VB6 :(
谢谢 :)
我已经尝试搞乱了vbunit,但我发现没有简单的方法将它添加到现有的应用程序或至少不知道如何.因此我发现这也与vb-lite-unit以及这个comunit一起玩.还有一些说法我们可以将NUnit与vb6一起使用,但是资源更少.
我知道我也不是在问这个问题.请帮我更好地形成我的问题.
我有点困难让我的思绪缠绕在手柄上 - 在某些方面,它看起来像指针.但与指针不同,似乎我可以直接将值赋给handle变量,它会影响底层数据值,而不是句柄本身.
测试代码清楚地表明,无论是否使用句柄,我都得到相同的值,或者如果我"取消引用"句柄来获取数据.显然,这不适用于非托管指针.我不明白的是什么?
#include <iostream>
int main()
{
int ^y;
int ^a, ^b, ^c;
long x;
y= gcnew int(100);
a=y;
b=y;
c=y;
c= gcnew int(200);
b= 300;
System::Console::WriteLine(y); // returns 100 (instead of something pointer-like)
System::Console::WriteLine(*y); // also returns 100
System::Console::WriteLine(a); // 100
System::Console::WriteLine(b); // 300
System::Console::WriteLine(c); // 200
x = static_cast<long>(y);
*y = 10;
System::Console::WriteLine(x); // 10
System::Console::WriteLine(y); // 10
System::Console::WriteLine(*y); // 10
}
Run Code Online (Sandbox Code Playgroud)
编辑添加 - 我怀疑WirteLine可能已经为我做了解除引用,但我原本预计静态强制转换不会.这与autounboxing有关吗?
非IT人员,尤其是程序员,没有很好的解决问题的方法.他们根本就不像我们这样的程序员,他们有一个良好的逻辑.我被问过太多次,我会建议他们改进他们的逻辑,最终有助于日常的专业问题.我想到的是好的谜题,数学问题等等.
话虽如此,你会推荐什么,为什么?书籍,网站,文章?
将PDF文档的一部分呈现给图像文件需要哪些库,扩展等?
我找到的大多数PHP PDF库都围绕创建PDF文档,但是有一种简单的方法可以将文档呈现为适合Web使用的图像格式吗?
我们的环境是LAMP堆栈.
在Python中,编译的正则表达式模式有一个findall方法可以执行以下操作:
返回字符串中pattern的所有非重叠匹配,作为字符串列表.从左到右扫描字符串,并按找到的顺序返回匹配项.如果模式中存在一个或多个组,则返回组列表; 如果模式有多个组,这将是一个元组列表.结果中包含空匹配,除非它们触及另一个匹配的开头.
在Perl中执行此操作的规范方法是什么?我能想到的一个天真的算法是"当搜索并用空字符串替换成功时,做[套件]".我希望有一个更好的方式.:-)
提前致谢!
class Test {
bool isVal() const {
return isVal;
}
private:
bool isVal;
};
Run Code Online (Sandbox Code Playgroud)
在编译这个文件时,它说
testClass.cpp:9:`bool Test :: isVal'的声明
testClass.cpp:3:与之前的声明`bool Test :: isVal()'冲突
虽然这同样适用于java
class Test {
private boolean isVal;
public boolean isVal() {
return isVal;
}
}
Run Code Online (Sandbox Code Playgroud)
不知道为什么C++无法解决这个问题.
例如
class Test {
public:
void setVal(const std::string& str) {
this.isVal = str; //This will error out
}
private:
string isVal;
};
Run Code Online (Sandbox Code Playgroud) 我试图获取我的网站根目录中的文件夹的路径,并在调用我的控制器构造函数时将其保存到类属性:
public TestController:Controller{
string temp;
public TestController(){
temp = "";
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
temp = Server.MapPath("~/TheFolder/"); // Server is null - error.
temp = Request.PhysicalApplicationPath + @"TheFolder\"; // Request is null - error.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我最近被要求解决使用Microsoft的Composite UI Application块构建的应用程序中的一些性能问题 - 特别是它需要很长时间才能加载.
这是围绕Microsoft的ObjectBuilder依赖注入框架构建的,该框架使用反射/属性来注册类.分析表明,在启动时,应用程序花费了大量时间进行反射,因为ObjectBuilder会扫描每个已加载程序集中的每个类型,以搜索要注册的内容.
替代DI框架似乎也使用属性,XML配置或纯代码.
看起来似乎没有任何其他基于属性的框架会更好,而且我对启动时也持怀疑态度,因为必须解析成堆的XML等等.
基于纯代码的框架看起来应该更快,但是它们也不那么灵活,所以它看起来并不是一个明确的好选择......
这导致我搜索DI容器基准测试,但我能找到的唯一一个就是这个:http : //www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html.
虽然它是一个很好的基准,但它只测量使用容器创建100万个对象的速度.我没有兴趣创建100万个对象,我只是希望应用程序尽快启动,所以我正在寻找的是有关DI Container 启动成本的任何信息,无论是博客文章,轶事,甚至是什么简单的"这是一种使ObjectBuilder更快"的方法.
提前致谢
我有一个对象列表(例如,让我们说5).我想要一些可能的排列列表.具体来说,鉴于有些对不在一起,而有些三元组不能制作三明治,我怎样才能产生所有其他排列?我意识到我首先生成所有这些并检查它们是否有效,但我认为甚至不考虑不起作用的对和三元组会更快.
我错了,先检查并稍后生成会更快吗?
我该怎么办?