让我们想象一下我们有注册表模式......
<?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) 我们的成员列表中的某些用户附加了角色"供应商".所有这些成员在登录时都会被重定向到某个页面.如何实现这一目标?
完全免责声明:这不是一个真正的功课,但我标记它是因为它主要是一个自学习练习而不是实际的"工作".
假设我想用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.那是: …
我有以下自学习代码:
#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为什么这样的结果?也许它应该全部为零?
我是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)
我非常肯定我正在做一些与图像这么明显的事情有关的错误.
谢谢.
我是JIRA的新手.
有人可以向我解释JIRA中不同方案的含义; 如问题安全方案,通知方案等?
有用的在线资源也受到高度赞赏.
我正在尝试发送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#填充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) 自动设置对象的创建日期的最佳方法是什么,以及将在上次更新对象时记录的字段?
在我的模型中,我有:
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的新手......
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
我可以看到这两个渐变之间的区别.有没有更好的方法呢?