如何更清晰/简洁地编写此代码?
/// <summary>
/// Creates a set of valid URIs.
/// </summary>
/// <param name="levelVariantURIDicts">A collection of dictionaries of the form:
/// dict["filePath"] == theFilePath </param>
/// <returns></returns>
private ICollection<string> URIsOfDicts(ICollection<IDictionary<string, string>> levelVariantURIDicts)
{
ICollection<string> result = new HashSet<string>();
foreach (IDictionary<string, string> dict in levelVariantURIDicts)
{
result.Add(dict["filePath"]);
}
return result;
}
Run Code Online (Sandbox Code Playgroud) 是否可以在欢迎页面上指向已定义命令的链接,例如,启动对话框?
我正在考虑建立一个欢迎页面,指出先要做的步骤,例如:
1) change language (click here)
2) set up database connection (click here)
3) start working (click here)
Run Code Online (Sandbox Code Playgroud)
"单击此处"应该是一个调用实际对话框来设置的链接.我在命令样式菜单中使用Eclipse.
感谢任何建议!
uniqid()函数返回一个13位长的十六进制数.根据php.net网站上的规范,该函数用于microtime生成唯一值.
但是microtime以字符串格式返回数字如下:
"0.70352700 12689396875"
Run Code Online (Sandbox Code Playgroud)
这基本上是自1970年以来经过的微秒和秒数.这是一个9 + 11位十进制数.
将20十进制数转换为十六进制将导致16位十六进制而不是13位数.
我也想过取出"0".似乎永远不会改变的部分,以及似乎始终为"00"的microsec部分的最后两位数字.这样做十进制数字只有9 + 11-3位长,但是当转换成十六进制时仍然是十进制数字的17位数将导致14位十六进制数字不是13.
我不是有兴趣以另一种方式获得一个独特的ID或更长/更独特的ID!我只会问,如果有人知道为什么只能退回13个数字.
这似乎nosense:如果uniqid返回一个不到两位数microtime,这意味着microtime给出的结果是更独特返回的那些的uniqid.
我是Hibernate世界的新手.这可能是一个愚蠢的问题,但我无法解决它.我正在测试表的多个到一个关系并试图插入记录.我有一个Department表和Employee表.员工和部门在这里有多对一的关系.我正在使用Fluent NHibernate添加记录.以下所有代码.请帮忙
SQL代码
create table Dept (
Id int primary key identity,
DeptName varchar(20),
DeptLocation varchar(20)
);
create table Employee (
Id int primary key identity,
EmpName varchar(20),
EmpAge int,
DeptId int references Dept(Id)
);
Run Code Online (Sandbox Code Playgroud)
类文件
public partial class Dept
{
public virtual System.String DeptLocation { get; set; }
public virtual System.String DeptName { get; set; }
public virtual System.Int32 Id { get; private set; }
public virtual IList<Employee> Employees { get; set; }
}
public partial class Employee
{ …Run Code Online (Sandbox Code Playgroud) 我在日志中发现了几个IllegalStateException异常:
[#|2009-01-28T14:10:16.050+0100|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=26;_ThreadName=httpSSLWorkerThread-80-53;_RequestID=871b8812-7bc5-4ed7-85f1-ea48f760b51e;|WEB0777: Unblocking keep-alive exception
java.lang.IllegalStateException: PWC4662: Request header is too large
at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:740)
at org.apache.coyote.http11.InternalInputBuffer.parseHeader(InternalInputBuffer.java:657)
at org.apache.coyote.http11.InternalInputBuffer.parseHeaders(InternalInputBuffer.java:543)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.parseRequest(DefaultProcessorTask.java:712)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:577)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]
Run Code Online (Sandbox Code Playgroud)
有人知道配置更改来解决这个问题吗?
我正在尝试将LizardTech GeoExpress DSDK链接到我自己的应用程序中.我使用gcc,以便我们可以为平台编译.在Linux和Mac上,这很容易实现:它们提供静态库(libltidsdk.a)和头文件,我们所要做的就是使用它们.
编译windows并不容易.他们使用Microsoft Visual Studio构建了库,我们使用MinGW.我已经阅读了MinGW常见问题解答,我遇到了以下问题.这个库都是C++,所以我的第一个问题是:这甚至可能吗?
只需链接到所提供的dll,就会产生所有C++调用(构造函数,析构函数,方法等)的"未定义引用"错误.
基于MinGW Wiki:http:
//www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs
我应该能够使用该实用程序reimp将.lib转换为可用的东西.我已经尝试了LizardTech提供的所有.lib文件,它们都给出了"无效或损坏的导入库".我已经尝试了reimp实用程序的0.4和0.3版本.
使用wiki中描述的第二种方法,我在dll上运行pexport和dlltool来获取.a存档,但这会产生相同的未定义引用.
顺便说一句:我已经阅读了下面的讨论.它是否有可能留下一些含糊不清的地方,并且考虑到MinGW Wiki页面,它似乎应该是可行的.如果不可能,那就是我需要知道的全部内容.如果可以做到,我想知道如何实现这一目标.
谢谢!
我用谷歌搜索了一下,并没有找到我需要的答案.
我正在使用SQL Server和LINQ为客户开发C#的网页.我希望用户能够相互发送消息.所以我所做的是我用实际进入数据库的数据对其进行单元测试.
问题是我现在依赖至少有2个用户,我知道他的ID.此外,我必须自我清理.这导致了相当大的单元测试,在一次测试中进行了很多测试.
让我们说我想更新一个用户.这意味着我必须终止用户,更新它,然后删除它.这在一个单元测试中有很多断言,如果失败并且有更新,我必须手动删除它.
如果我以任何其他方式执行此操作,而不将数据保存到DB,我肯定无法知道更新后数据是否存在于数据库中等.
如果没有在一次测试中测试大量功能的测试,那么正确的方法是什么?
继上一个与堆使用限制相关的问题之后,我正在寻找一个好的标准C++类,以一种既节省内存又提高速度的方式处理大数据数据.我一直在使用单个malloc/HealAlloc分配数组,但是在使用各种调用的多个trys之后,继续犯下堆碎片.因此,除了移植到64位之外,我得出的结论是使用一种机制,允许我拥有一个跨越多个较小内存片段的大型数组.我不希望每个元素都有一个alloc,因为它的内存效率很低,所以计划是编写一个覆盖[]运算符的类,并根据索引选择一个合适的元素.是否已经有一个体面的班级来做这件事,或者我最好自己动手?
根据我的理解和一些谷歌搜索,32位Windows进程理论上应该可以解决高达2GB的问题.现在假设我已经安装了2GB,并且各种其他进程和服务占用大约400MB,你认为我的程序可以合理地期望从堆中获得多少可用内存?
我目前正在使用各种风格的Visual C++.
编辑 按照Poita的帖子,我尝试了一个std :: deque,在VS2008上使用以下测试;
#include <deque>
using namespace std;
struct V
{
double data[11];
};
struct T
{
long data[8];
};
void dequeTest()
{
deque<V> VQ;
deque<T> TQ;
V defV;
T defT;
VQ.resize(4000000,defV);
TQ.resize(8000000,defT);
}
Run Code Online (Sandbox Code Playgroud)
上述数据的总内存为608MB,如果我使用直接malloc或HeapAlloc,则需要<1秒.deque resizes最初占用了950MB,然后慢慢开始退回.15分钟后,dequeTest()完成了,只使用了6MB的内存显示进程,这可能更多地与运行时间有关.我也尝试使用各种推送选项填充双端队列,但性能非常糟糕,我不得不提前爆发.我可以提供一个比defualt更好的分配器来获得更好的响应,但从表面来看,deque并不是这项工作的类.请注意,这也可能与deque的MS VS2008实现有关,因为在这个类中似乎有很多与性能相关的非常依赖于实现的实现.
我想,是时候写我自己的大数组了.
第二次编辑: 使用以下内容立即分配较小的数量,产生1.875GB;
#define TenMB 1024*1024*10
void SmallerAllocs()
{
size_t Total = 0;
LPVOID p[200];
for (int i = 0; i < 200; i++)
{
p[i] = malloc(TenMB);
if (p[i])
Total += …Run Code Online (Sandbox Code Playgroud) 我正在使用Google Maps API构建一个充满标记的地图,但我想要一个标记与其他标记脱颖而出.我认为最简单的做法是将标记的颜色改为蓝色,而不是红色.这是一件简单的事情,还是我必须以某种方式创建一个全新的图标?如果我必须创建一个新图标,最简单的方法是什么?
c# ×2
c++ ×2
java ×2
visual-c++ ×2
arrays ×1
asp.net ×1
eclipse ×1
eclipse-rcp ×1
fluent ×1
g++ ×1
gcc ×1
glassfish ×1
google-maps ×1
http ×1
json ×1
linq ×1
mingw ×1
nhibernate ×1
php ×1
rcp ×1
silverlight ×1
sql-server ×1
unique-id ×1
unit-testing ×1