我想使用ADO.net从Excel文件中提取一些数据.这个过程在互联网上有很好的记录.我的问题是我的文件已被用户上传,因此仅作为内存中的字节数组存在.出于安全性和性能原因,我宁愿不将此文件写入磁盘.
有没有办法构建连接到字节数组的连接字符串?或者可能将该数组暴露为实际存储在内存中的文件(如我猜的RAM磁盘)?
我正在开发一个具有相当多依赖性的大型delphi 6项目.编译整个项目需要几分钟的时间.经过一些更改后重新编译有时会更长,以便更快地终止Delphi,擦除所有dcu文件并重新编译所有内容.
有没有人知道识别的方法,是什么让编译器变慢和变慢?有关如何组织代码以提高编译器性能的任何提示?
我已经尝试过以下事项:
编辑,答案总结到现在为止:
在我的案例中最有效的答案:
接下来我想尝试一下:
在我的案例中没有改变任何事情的事情:
不适用于我案件的事情:
我没试过的事情:
我想通过以下方式"破坏"Groovy中的方法:
Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
Run Code Online (Sandbox Code Playgroud)
我得到StackOverflowException(这并不奇怪).
有没有办法在元类'闭包中使用"原始"加法?
在将一些代码迁移到VS2010 b1中包含的最新版本的F#时,我遇到了一个问题,我想知道是否有可用的解决方法 - 如果没有 - 为什么F#编译器的行为被修改为不支持该方案.
type Foo(a) =
[<OverloadID("CurriedAbc")>]
member public x.Abc (p:(oneType * anotherType) seq) otherParm = method impl...
//this overload exists for better compatibility with other languages
[<OverloadID("TupledAbc")>]
member public x.Abc (p:Dictionary<oneType, anotherType>, otherParm) =
x.Abc(p |> Seq.map(fun kvp -> (kvp.Key, kvp.Value))) otherParm
Run Code Online (Sandbox Code Playgroud)
此代码生成以下编译时错误:
错误FS0191:此方法的一个或多个重载具有curried参数.考虑重新设计这些成员以采用tupled形式的参数
请注意,这曾经在F#1.9.6.2(9月CTP)上完美运行
我的任务是将一个在线帮助文件添加到Windows应用程序中.所以我脑子里有几个问题:
如何创建帮助文件以及如何将它们添加到Windows窗体项目?
有没有一种很好的方法在VS解决方案中处理它们?
有没有关于如何做到这一点的教程?
有没有办法实现与webmail客户端一起使用的mailto:link?
编辑 - 所以传统的mailto链接(我怀疑)无法正常工作.那么有没有人看到过类似于你在各种最受欢迎的网站上看到的rss按钮?
这个stackoverflow问题有一个有趣的讨论,关于如何避免给枚举和属性提供相同的名称,这样你就没有这样的代码:
public SaveStatus SaveStatus { get; set; }
Run Code Online (Sandbox Code Playgroud)
似乎接受的答案建议使用"状态"作为枚举和属性的"状态":
public SaveStatus SaveState { get; set; }
Run Code Online (Sandbox Code Playgroud)
但我认为这很难理解,也不能立即明确什么是什么.
由于这个枚举命名问题是一个不变的问题,我考虑只是总是用"Enum"为我的枚举添加后缀,所以我会这样:
public SaveStatusEnum SaveStatus { get; set; }
SaveStatus = SaveStatusEnum.Succeeded;
Run Code Online (Sandbox Code Playgroud)
有没有人这样做?满意吗?以另一种方式解决了这个问题?
O Groovy Gurus,
此代码段大约在1秒内运行
for (int i in (1..10000000)) {
j = i;
}
Run Code Online (Sandbox Code Playgroud)
而这个需要将近9秒
for (int i = 1; i < 10000000; i++) {
j = i;
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我的观点有误.只有在Visual Studio中打开视图时才会看到这些错误.
我想在编译时看到错误,而不是在执行时.
是否存在获得此行为的方法?
考虑以下.我有两个导出的常量如下:
// somefile.h
extern const double cMyConstDouble;
extern const double cMyConstDouble2;
Run Code Online (Sandbox Code Playgroud)
和
// somefile.cpp
const double cMyConstDouble = 3.14;
const double cMyConstDouble2 = 2.5*cMyConstDouble;
Run Code Online (Sandbox Code Playgroud)
现在引用这些常量来定义两个静态(局部可见)常量:
// someotherfile.cpp
#include "somefile.h"
static const double cAnotherDouble = 1.1*cMyConstDouble;
static const double cAnotherDouble2 = 1.1*cMyConstDouble2;
printf("cAnotherDouble = %g, cAnotherDouble2 = %g\n",
cAnotherDouble, cAnotherDouble2);
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
cAnotherDouble = 3.454, cAnotherDouble2 = 0
Run Code Online (Sandbox Code Playgroud)
为什么第二双0?我正在使用.NET 2003 C++编译器(13.10.3077).