问题列表 - 第32286页

注册模式和注册对象的延迟实例化

让我们想象一下我们有注册表模式......

<?php

class Registry
{

private static $objects     = array();
private static $instance    = null;

public static function getInstance() {
    if (self::$instance == null) {
        self::$instance = new Registry();
    }
    return self::$instance;
}

protected function _get($key) {
    return ($this->objects[$key]) ? $this->objects[$key] : null;
}

protected function _set($key, $val) {
    $this->objects[$key] = $val;
}

public static function get($key) {
    return self::getInstance()->_get($key);
}

public static function set($key, $object) {
    return self::getInstance()->_set($key, $object);
}

}
?>
Run Code Online (Sandbox Code Playgroud)

使用这个实现非常简单......

<?
Registry::set('db', $db_client);
Registry::set('redis', $redis_client);

//Using …
Run Code Online (Sandbox Code Playgroud)

php oop registry design-patterns

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

如果用户属于某个角色,如何在用户登录后将其重定向到特定页面?

我们的成员列表中的某些用户附加了角色"供应商".所有这些成员在登录时都会被重定向到某个页面.如何实现这一目标?

drupal drupal-6 drupal-forms

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

用Java编写线程安全模块计数器

完全免责声明:这不是一个真正的功课,但我标记它是因为它主要是一个自学习练习而不是实际的"工作".

假设我想用Java编写一个简单的线程安全模块计数器.也就是说,如果模数M为3,那么计数器应该0, 1, 2, 0, 1, 2, … 无限循环.

这是一次尝试:

import java.util.concurrent.atomic.AtomicInteger;

public class AtomicModularCounter {
    private final AtomicInteger tick = new AtomicInteger();
    private final int M;

    public AtomicModularCounter(int M) {
        this.M = M;
    }
    public int next() {
        return modulo(tick.getAndIncrement(), M);
    }
    private final static int modulo(int v, int M) {
        return ((v % M) + M) % M;
    }
}
Run Code Online (Sandbox Code Playgroud)

我对此代码的分析(可能有问题)是因为它使用AtomicInteger,即使没有任何显式synchronized方法/块,它也非常安全.

不幸的是,"算法"本身并不完全"工作",因为当tick环绕时Integer.MAX_VALUE,next()可能会返回错误的值,具体取决于模数M.那是: …

java concurrency multithreading thread-safety

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

C++中的Bitfields

我有以下自学习代码:

#include <iostream>
using namespace std;
struct bitfields{
    unsigned field1: 3;
    unsigned field2: 4;
    unsigned int k:  4;
};

int main(){
    bitfields field;
    field.field1=8;
    field.field2=1e7;
    field.k=18;
    cout<<field.k<<endl;
    cout<<field.field1<<endl;
    cout<<field.field2<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道这unsigned int k:4意味着k是4位宽,或最大值15,结果如下.

2
0
1
Run Code Online (Sandbox Code Playgroud)

例如,filed1可以是从0到7(含),field2并且k从0到15为什么这样的结果?也许它应该全部为零?

c++ bit-fields

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

使用StringFormat绑定WPF图像源

我是WPF和MVVM的新手(本周开始尝试它)并尝试在运行时绑定图像资源.我正在尝试显示的项目包含一个枚举属性,指示项目的类型或状态:

public class TraceEvent
{
    /// <summary>
    /// Gets or sets the type of the event.
    /// </summary>
    /// <value>The type of the event.</value>
    public TraceEventType EventType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,Image的Source属性有一个值转换器,它接受字符串并返回Uri对象.

<Image Source="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}" />
Run Code Online (Sandbox Code Playgroud)

那么为什么上面的工作没有呢?如果我直接输入uri(没有绑定),图像就会完美显示.实际上,如果我在TextBlock中进行绑定并在Image中使用该值的结果也没有问题:

<TextBlock Visibility="Collapsed" Name="bindingFix" Text="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}"/>
<Image Source="{Binding ElementName=bindingFix, Path=Text}" />  
Run Code Online (Sandbox Code Playgroud)

我非常肯定我正在做一些与图像这么明显的事情有关的错误.

谢谢.

wpf binding image string-formatting mvvm

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

JIRA工作流程和方案

我是JIRA的新手.

有人可以向我解释JIRA中不同方案的含义; 如问题安全方案,通知方案等?

有用的在线资源也受到高度赞赏.

jira

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

SendKeys Ctrl-A无法正常工作

我正在尝试发送CTRL A (在这个案例中选择所有应用程序,但尝试我可能它不起作用)我尝试了很多组合,但都无济于事,任何想法?

        IntPtr appHandle = FindWindow(null, "Document1 - Microsoft Word");
        if (appHandle == IntPtr.Zero)
        {
            MessageBox.Show("Specified app is not running.");
            return;
        }

        SetForegroundWindow(appHandle);
        System.Threading.Thread.Sleep(500);

        //SendKeys.SendWait("111");
        SendKeys.SendWait("^A");
        //SendKeys.SendWait("^(A)"); //ctrl a
        //SendKeys.SendWait("(^A)");
Run Code Online (Sandbox Code Playgroud)

c# sendkeys

17
推荐指数
4
解决办法
5万
查看次数

用c#填充javascript数组

如何在后面的代码中用c#填充javascript中定义的数组?

编辑:

这是我的代码

protected void Page_Load(object sender, System.EventArgs e)
{
string[] locations = new string[] {
    "Las Vegas",
    "Los Angeles",
    "Tampa",
    "New York",
    "s",
    "sss"
};
string jsArray = GetJSArrayForVBArray(locations);
this.ClientScript.RegisterArrayDeclaration("usernames", jsArray);
}

private string GetJSArrayForVBArray(string[] vbArray)
{
StringBuilder myResult = new StringBuilder();
foreach (string item in Constants.vbArray) {
    {
        myResult.Append(",'" + item + "'");
    }
}
if ((myResult.Length > 0)) {
    return myResult.ToString().Substring(1);
} else {
    return "";
}
}
Run Code Online (Sandbox Code Playgroud)

Javsacript:

<script type="text/javascript">
    $(function () {
        var usernames = …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net

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

django模型表单对象的自动创建日期?

自动设置对象的创建日期的最佳方法是什么,以及将在上次更新对象时记录的字段?

在我的模型中,我有:

created_at = models.DateTimeField(False, True, editable=False)
updated_at = models.DateTimeField(True, True, editable=False)
Run Code Online (Sandbox Code Playgroud)

在我看来:

if request.method == 'POST':
    form = MyForm(request.POST)
    if form.is_valid():
        obj = form.save(commit=False)
        obj.user = request.user
        obj.save()
        return HttpResponseRedirect('obj_list')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

objects_object.created_at may not be NULL
Run Code Online (Sandbox Code Playgroud)

我是否必须自己手动设置此值?我认为这是传递给DateTimeFields的参数点(或者它们只是默认值,因为我设置'editable = False'它们不会显示在表单上,​​因此不会在请求中提交,因此不要进入表格?).

这样做的最佳方法是什么?一个init方法?

谢谢

ps - 我是django和Python的新手......

python django django-models

126
推荐指数
2
解决办法
8万
查看次数

SVG线性渐变从色调0到360

SVG线性梯度http://elv1s.ru/files/svg/gradient-hue.png

这样做一个渐变的正确方法是什么?我试过这个SVG:

<linearGradient id="hue" x1="0" y1="1" x2="0" y2="0">
    <stop offset="0%" stop-color="#ff0000"/>
    <stop offset="17%" stop-color="#ffff00"/>
    <stop offset="34%" stop-color="#00ff00"/>
    <stop offset="50%" stop-color="#00ffff"/>
    <stop offset="66%" stop-color="#0000ff"/>
    <stop offset="82%" stop-color="#ff00ff"/>
    <stop offset="100%" stop-color="#ff0000"/>
</linearGradient>

它有效,但仍然不够好:

SVG线性梯度http://elv1s.ru/files/svg/gradient-hue-reference.png

我可以看到这两个渐变之间的区别.有没有更好的方法呢?

graphics svg

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