这可能吗?当我编译时,我得到一个错误,即使用约束也无法将Component转换为TComponent
public interface IComponent<TKey, TComponent> where TComponent : IComponent<TKey, TComponent>
{
TComponent Parent { get; }
void Register(TKey key, TComponent component);
void RegsiterWith(TKey key, TComponent component);
}
public class Component<TKey, TComponent> : IComponent<TKey, TComponent> where TComponent : IComponent<TKey, TComponent>
{
private TComponent _parent;
public void Register(TKey key, TComponent component)
{
component.RegsiterWith(key, this);
}
public void RegsiterWith(TKey key, TComponent component)
{
component.Register(key, this);
}
public TComponent Parent { get { return _parent; } }
}
Run Code Online (Sandbox Code Playgroud) 背景:
在通过分析器运行我的应用程序时,看起来热点都涉及分配大量临时新byte []数组.
在CLR Profiler下的一次运行中,在一个千兆字节的垃圾中产生了一些短的(在分析器外部花费了3-5秒的CPU时间),其中大部分是byte []分配,这触发了超过500个集合.
在某些情况下,应用程序似乎花费了超过其执行集合的CPU时间的10%.
显然,重写是有序的.
所以,我正在考虑用一个可以在以后重用缓冲区的池类替换新的byte []分配.
像这样......
{
byte[] temp = Pool.AllocateBuffer(1024);
...
}
Run Code Online (Sandbox Code Playgroud)
题:
当不再需要temp时,如何强制应用程序在例程Pool.deAllocate(temp)中调用代码.
在上面的代码片段中,当temp是Pool分配的byte []缓冲区时,但是当它超出范围时,它会被删除.不是真正的问题,但不会被池重用.
我知道我可以替换"return 0;" 使用"Pool.deAllocate(temp);返回0",但我试图强制恢复发生.
这甚至可以远程实现吗?
我想声明一个List<int[]>或者Map<int[],Boolean>很难,因为Java中的数组没有实现该equals()方法.如果两个数组a和b相等,a.equals(b)返回false.
虽然java.util.Arrays.equals()比较数组是否相等,但如何List使用该方法进行比较而不是搞砸equals()?
顺便说一下,int[]是描述坐标的数组[x,y,z].我想把一堆这些坐标放入List或Map.
我正在尝试制作一个闪烁的对象,即将其alpha值从0增加到255(逐渐)然后再回到0,然后重复.
我有没有办法在不使用布尔值的情况下做到这一点?让它增加很容易:
alpha = time.elapsed()%256;
Run Code Online (Sandbox Code Playgroud)
但在那之后又有什么好办法让它重新计算?
如果我有一组值(我将称之为x),以及x的多个子集:
求出所有可能的联合组合的最佳方法是什么,这些组合的联合等于x,但没有一个彼此相交.
一个例子可能是:
如果x是数字1到100的集合,我有四个子集:
那么可能的组合将是:
我有一个xml提要,说:
http://gdata.youtube.com/feeds/api/videos/-/bass/fishing/
我想获取视频的href列表:
['http://www.youtube.com/watch?v=aJvVkBcbFFY', 'ht....', ... ]
Run Code Online (Sandbox Code Playgroud) 目前,buildout recipe collective.recipe.omelette在所有版本的Windows上使用junction.exe来创建符号链接.但是,默认情况下,junction.exe不附带Windows,最重要的是不支持为文件(仅限目录)创建符号链接,导致相当多的Python包出现问题.
在NT6 +(Vista和7)上,现在有一个mklink实用程序,它不仅默认出现,而且还能够为文件和目录创建符号链接.我想更新collective.recipe.omelette以使用它(如果可用)并且已经这样做了,除了一个简单的功能; 检测文件或文件夹是否实际上是符号链接.由于这是一个小的构建配方,在我看来需要Pywin32有点太多了(除非setuptools可以某种方式只在Windows上下载它?).
目前在Windows上,煎蛋的功能是调用文件夹上的junction.exe,然后grep响应"替换名称:"但我找不到任何简单的mklink.
我能想到的唯一方法是在目录中调用"dir",然后逐行查看"<SYMLINK>"和同一行的文件夹/文件名.当然有更好的东西?
我的网站目前处理这样的URL ...
/?p=home
/?p=profile&userid=1
/?p=users.online
/?p=users.online&page=23
/?p=mail.inbox
/?p=mail.inbox&page=12
Run Code Online (Sandbox Code Playgroud)
...等等,可能至少有120-150个不同的页面,在我的网站上,这样的页面是这样构建的,
的index.php包括主配置文件,然后包括功能/类文件到它
的index.php然后包括一个头文件
的index.php然后包括页面文件,其是从该URL P =页面名
的index.php然后包括一个脚注文件
这就是我网站上每个页面的编译方式,通过这样的索引页面,我一直在考虑/考虑清理URL,因为我现在正在重写/重构我的大部分网站代码,这是一个完美的时间.如果我要这样做的话.清理URL的意思是使用mod-rewrite,所以上面的URL结构看起来像这样......
/home
/users/1 //user ID might switch to use username as well
/users/online
/users/online/23 or /users/online/page/23
/mail/inbox
/mail/inbox/12
Run Code Online (Sandbox Code Playgroud)
所以首先要做到这一点有什么不足,是否因为使用mod_rewrite而创建了更多的处理工作?
也难以编写正则表达式或者以上面显示的格式匹配文件名所需的任何内容,我只列出了一些页面但是至少有100个不同的URL页面我有博客,公告,论坛,各种各样的东西
有没有办法为没有翻译的表达式提供翻译?
像double.parse()
我正在构建一个使用 WiX 的安装程序(没有关键字,因为 WiX 不是这里的问题),它将为 SQL Server Express 2005 高级服务数据库创建全文索引。
到现在我都用SQL
CREATE FULLTEXT CATALOG Foobar in path 'c:\Whereever'
Run Code Online (Sandbox Code Playgroud)
现在,安装程序不会在卸载时删除数据库,因为它可能包含有价值的用户数据。现在,当我更新软件时,它会偶然发现已经存在的全文索引的创建。(在安装程序中中止,因为它不能运行那行 SQL)
如果全文索引不存在,我想要做的是有条件地运行该行。我希望像
IF NOT EXISTS(SELECT * from sys.??????? WHERE name = 'Foobar')
CREATE FULLTEXT CATALOG Foobar in path 'c:\Whereever'
Run Code Online (Sandbox Code Playgroud)
(我刚刚在 stackoverflow 上看到了类似于我需要的东西)
但是我在哪里(以及如何)找出索引是否记录在 sys 表中(以及它是哪个表?)