我正在开发一个从子目录启动时加载插件的应用程序,目前我通过使用反射来迭代每个程序集的类型并查找实现IPluginModule接口的公共类.
由于Reflection涉及性能损失,并且我希望在一段时间后会有几个插件,我想知道定义在程序集级别应用的自定义属性是否有用,可以在迭代类型之前进行检查(可能是程序集中的十几种类型,包括IPluginModule的1个实现者.
该属性(如果存在)可以提供返回所需类型或实例的方法,然后迭代类型将只是一个回退机制.在配置文件中存储类型信息不是一种选择.
这会改善性能,还是与实际从存储加载组件的时间相比无关紧要?此外,这种用法是否适用于属性?
这是我的问题的一个小问题:
基本上,一盒物品比另一箱大得多.因此,使用sortable进行拖放是一项挑战.
首先,我在开始时改变了元素的大小
$(function() {
$( "#sortable1, #sortable2" ).sortable({
connectWith: ".connectedSortable",
start: function(event, ui){
$(ui.item).width($('#sortable2 li').width());
}
}).disableSelection();
});?
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何将已调整大小的元素移动到鼠标光标.基本上,如果我点击左侧列表中元素左侧的任何距离,则很难将元素放到较小的列表中.
我试图使用以下方法将元素移动到鼠标位置:
$(ui.item).offset({top: event.pageY, left: event.pageX});
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有用.
进一步澄清:
(清单1)(清单2)----------------------------------------- - -
将列表1中的元素移动到列表2具有挑战性,因为它们的大小不同.因此,我将列表1中的元素调整为列出2大小.现在,如果你点击
- - - - - - - - - - - - - - - - - - -X - - - -
元素看起来像
--- ___ _ __ _ __ _ __ _ __ _ __ _ __ x __ ---
其中x表示鼠标位置.本质上,我想将元素移动到鼠标位置,以便更轻松地拖动列表2
有什么建议吗?谢谢!
编辑:对不起,我没有足够的代表发布图片,但是......
[ _ __ …
我编写了以下程序来对一个数字进行分解:
import math
def prime_factorize(x,li=[]):
until = int(math.sqrt(x))+1
for i in xrange(2,until):
if not x%i:
li.append(i)
break
else: #This else belongs to for
li.append(x)
print li #First print statement; This is what is returned
return li
prime_factorize(x/i,li)
if __name__=='__main__':
print prime_factorize(300) #Second print statement, WTF. why is this None
Run Code Online (Sandbox Code Playgroud)
以下是我得到的输出:
[2, 2, 3, 5, 5]
None
Run Code Online (Sandbox Code Playgroud)
Altho',正确打印返回的值,后面的返回值似乎一直打印无.我错过了什么?
另外,如何改进程序(继续使用递归)
这一定是一个非常愚蠢的问题.我试图在一个新线程中运行一个耗时的过程,所以我将能够显示进度条.我以前从未使用过线程.我必须做错事,因为当我使用这种.Start()
方法时,似乎没有任何事情发生.
private void btnStart_Click(object sender, EventArgs e)
{
clsScrap oScrap = new clsScrap(txtInputFilename.Text,txtImgSrc.Text);
Thread ScrapThread = new Thread(new ThreadStart(oScrap.Scrap));
ScrapThread.Start();
while (oScrap.GetLinkCount() < 0) ;
myProgressBar.Minimum = 1;
myProgressBar.Maximum = oScrap.GetLinkCount();
while (ScrapThread.IsAlive)
{
Thread.Sleep(1000 * 30);
myProgressBar.Value = oScrap.GetCurrLinkNo();
}
}
Run Code Online (Sandbox Code Playgroud)
我在oScrap.Scrap()的开头放了一个断点,但它永远不会到达那里.后ScrapThread.Start();
线,它只是移动到下一个while循环和被卡在那里(功能oScrap.GetLinkCount()
猜想初始化后迅速返回正值)
我究竟做错了什么?提前致谢.
我正在构建一个Windows窗体应用程序.我char.IsNumber()
用来检查按下的键是否为数字:
private void AmBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(char.IsNumber(e.KeyChar))
e.Handled=true;
}
Run Code Online (Sandbox Code Playgroud)
MSDN表示char.IsNumber()
检查密钥char是否为数字,因此如果是数字则返回true.从我所看到的,结果是颠倒的 - 它忽略数字(1,2,3 ....)而不是字符(A,a,b,c ......).
如果我使用,我可以解决问题,!char.IsNumber();
但我无法理解这种方法的char.IsNumber()
作用.有人可以详细解释一下吗?
关于regexp的简单问题.我有
String text = "foobar1foobar1";
Run Code Online (Sandbox Code Playgroud)
我需要在第一个之前获得一部分(foobar)当我做这样的事情时:
Pattern date_pattern = Pattern.compile("(.+)1");
Matcher matcher = date_pattern.matcher(text);
matcher.group(1);
Run Code Online (Sandbox Code Playgroud)
但我收到"foobar1foobar".
我是初学者,我想在右侧创建侧边菜单.
到目前为止,我有一个UIButton
正确的顶部viewController
,我想要的是当我点击那个按钮我show/hide slide menu
想说3项...
当我点击每个项目时,它将转到不同的视图控制器.在我的项目中,我只使用AMSlideMenu在一个viewController中显示幻灯片菜单.提前致谢.
如何有效地将枚举扩展为有 2 个以上的选项。我正在逐行读取文件中的事件。我有一个构造函数
public enum EventType
{ A,D }
public class Event
{
public EventType Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我像这样分配了 Type 属性:
Type = tokens[2].Equals("A") ? EventType.A : EventType.D,
Run Code Online (Sandbox Code Playgroud)
哪里token[2]
是包含“A”等值的字符串。
这在只有A
and时工作正常D
,但我想要另外两种类型;说R
和C
。当我将它们添加到 enum 字段时,如何获取类型?上面给出了编译错误,就像使用 Type 作为变量一样。
感谢您的即时帮助!谢谢