小编Bot*_*000的帖子

插件架构中的反射与属性

我正在开发一个从子目录启动时加载插件的应用程序,目前我通过使用反射来迭代每个程序集的类型并查找实现IPluginModule接口的公共类.

由于Reflection涉及性能损失,并且我希望在一段时间后会有几个插件,我想知道定义在程序集级别应用的自定义属性是否有用,可以在迭代类型之前进行检查(可能是程序集中的十几种类型,包括IPluginModule的1个实现者.

该属性(如果存在)可以提供返回所需类型或实例的方法,然后迭代类型将只是一个回退机制.在配置文件中存储类型信息不是一种选择.

这会改善性能,还是与实际从存储加载组件的时间相比无关紧要?此外,这种用法是否适用于属性?

.net c# architecture reflection plugins

3
推荐指数
2
解决办法
1968
查看次数

在拖动JQuery UI上更改可排序元素的大小

这是我的问题的一个小问题:

http://jsfiddle.net/Yc9WY/52/

基本上,一盒物品比另一箱大得多.因此,使用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

有什么建议吗?谢谢!

编辑:对不起,我没有足够的代表发布图片,但是......

[ _ __ …

css jquery jquery-ui jquery-ui-sortable

3
推荐指数
1
解决办法
1万
查看次数

Python递归程序,用于对一个数字进行分解

我编写了以下程序来对一个数字进行分解:

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',正确打印返回的值,后面的返回值似乎一直打印无.我错过了什么?

另外,如何改进程序(继续使用递归)

python algorithm recursion primes prime-factoring

2
推荐指数
2
解决办法
9269
查看次数

线程未启动

这一定是一个非常愚蠢的问题.我试图在一个新线程中运行一个耗时的过程,所以我将能够显示进度条.我以前从未使用过线程.我必须做错事,因为当我使用这种.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()猜想初始化后迅速返回正值)

我究竟做错了什么?提前致谢.

c# multithreading winforms

2
推荐指数
1
解决办法
90
查看次数

char.IsNumber()

我正在构建一个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()作用.有人可以详细解释一下吗?

c# winforms

2
推荐指数
2
解决办法
3276
查看次数

Java Regexp Matcher

关于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".

java regex matcher

1
推荐指数
1
解决办法
178
查看次数

如何在Swift 3.0中创建右侧菜单?

我是初学者,我想在右侧创建侧边菜单.

到目前为止,我有一个UIButton正确的顶部viewController,我想要的是当我点击那个按钮我show/hide slide menu想说3项...

当我点击每个项目时,它将转到不同的视图控制器.在我的项目中,我只使用AMSlideMenu在一个viewController中显示幻灯片菜单.提前致谢.

amslidemenu swift3

1
推荐指数
1
解决办法
6851
查看次数

使用 enum c# 分配属性的最佳方法

如何有效地将枚举扩展为有 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”等值的字符串。

这在只有Aand时工作正常D,但我想要另外两种类型;说RC。当我将它们添加到 enum 字段时,如何获取类型?上面给出了编译错误,就像使用 Type 作为变量一样。

感谢您的即时帮助!谢谢

c# enums

0
推荐指数
1
解决办法
4899
查看次数