像这样的东西应该可以工作:
container
.RegisterType<LoaderInputReader>(
"us",
new InjectionConstructor(
@"\\ad1\accounting$\Xml\qb_us.xml",
new ResolvedParameter<Company>(),
new ResolvedParameter<eTargets>()));
container
.RegisterType<LoaderInputReader>(
"intl",
new InjectionConstructor(
@"\\ad1\accounting$\Xml\qb_intl.xml",
new ResolvedParameter<Company>(),
new ResolvedParameter<eTargets>()));
这为 LoaderInputReader
的每个注册命名。现在你可以这样解决:
var us = container.Resolve<LoaderInputReader>("us");
var intl = container.Resolve<LoaderInputReader>("intl");
$sql = "SELECT COUNT(*) FROM users WHERE username = '$username'";
$sql = $this->db->quote($sql);
您正在引用整个查询,这没有任何意义,并且从安全角度来看是完全危险的 - 并且可能会导致无效的查询。
这是更正确的代码:
// return TRUE if user is available
public function isUsernameAvailable($username) {
$sql = "SELECT id FROM users WHERE username = :username";
$stmt = $this->db->prepare($sql);
$stmt->execute(array(':username' => $username));
return $stmt->fetch() === FALSE;
}
if (!$user->isUsernameAvailable($_POST['username'])) {
echo 'The username is already taken!';
$error = 1;
}
目前,RubyMine 依赖 Rails 框架将 CoffeeScript 编译为 JavaScript。
PhpStorm/WebStorm 产品中提供了尖端的 CoffeeScript 支持,EAP 版本将于 2011 年底发布。您可以在 http://confluence.jetbrains.net/display/WI/Web+IDE+EAP。
观看该问题以了解进展情况。
最新版本有编译 CoffeeScript 的操作,但它只是显示一个包含结果的窗口,而不写入任何文件(帮助
| 查找操作
| 编译 Coffeescript 文件,或将其绑定到设置
| 键盘映射
中的键盘快捷键)。
请注意,它仍在进行中,更多功能很快就会推出。目前,您可能可以使用命令行外部工具来设置编译。
def myClassOf[T:ClassTag] = implicitly[ClassTag[T]].runtimeClass
下面将做你想做的事。它将打印“一”和“十”。另请注意,它被输入为精确的数组维度 10 和 8。
char my_array[10][8] =
{
{"One"},
{"Two"},
{"One"},
{"One"},
{"One"},
{"One"},
{"One"},
{"One"},
{"Nine"},
{"Ten"},
};
void foo ( char (**ret)[10][8] )
{
*ret = my_array;
}
void main()
{
char (*ret)[10][8];
foo(&ret);
printf("%s\r\n", (*ret)[0] )
printf("%s\r\n", (*ret)[9] )
}
最初的问题是关于返回数组,因此我正在更新它以显示返回值。你不能直接“返回一个数组”,但你可以创建一个数组的 typedef 并返回它......
char my_array[10][8];
typedef char ReturnArray[8];
ReturnArray* foo()
{
return my_array;
}
将 newpath 从 更改
List<ArrayList>
为
List<DataRow>
$h2
是一个保存引用的词法变量。更改 $h2
只是替换其中的引用。
%{$h2}
是 $h2
(又名 %b
)引用的哈希,因此更改 %{$h2}< /code>(又名
%b
)更改 $h2
(又名 %b
)引用的哈希值。
您似乎期望更改一个变量($h2
)会更改另一个变量(%b
),但我不知道您为什么有这样的期望。它们甚至不是相同的变量类型!当标量没有元素时(至少与哈希不同),如何尝试通过更改标量来更改哈希的元素。
关于测试中的随机值和内联方法/变量。
此代码为您的测试生成 100 个随机整数/字符串对。
[Theory]
[PropertyData("GetTestData")]
public void test(int number1, string number2)
{
int result = number1 + Convert.ToInt32(number2);
var expectedType = Type.GetType("System.Int32");
Assert.IsType(expectedType, result);
}
public static IEnumerable<object[]> GetTestData
{
get { return Enumerable.Repeat(0, 100).Select(x => GenerateTestData()); }
}
private static object[] GenerateTestData()
{
var rand = new Random(0);
return new object[] {rand.Next(0,100), rand.Next(0,100).ToString()};
}
嗯,你需要它做什么?我一直在开发一个纯 Python 仪器库,它可以通过几种不同的协议(串行、VXI-11 (LXI)、GPIB (linux-gpib) 和 PyVISA)进行通信,称为 python-ivi,位于此处:http://www.github.com/alexforencich/python-ivi 。它是对可互换虚拟仪器规范的解释。不过,它不是 VISA,因此如果您特别需要 VISA,它不会为您提供帮助。
它是用 python 3 编写的,并在 Linux 中进行了测试,但它应该是跨平台的,因为它是纯 python。 python-vxi11 中 VXI-11 的实现也是纯 python,因此也应该是跨平台的。
就高级驱动程序和抽象而言,该项目仍处于相对早期的开发阶段,但它基本上完成了 PyVISA 在低级接口方面所做的所有工作。
换行符就是问题所在。您有 UNIX 字符,但您期望 Windows 风格的换行符。
我使用给定的 CSV 文件对其进行了转换和测试。
您可以使用 Windows 换行符测试转换后的 CSV 文件:
http://pastebin.com/9CK3JMRc
您可以通过自动检测来修复此问题 ini_set('auto_detect_line_endings' ,真);
或转换字符串。
我记得当我编写类似的代码时,我确实遇到了一些奇怪的问题。我不确定您的呼叫失败的确切原因,但您可以扭转问题并执行以下操作:
return group.GetMembers(true).Contains(user);
当然,目前不同的人对“引用传递”的含义有不同的定义。这就是为什么他们对于某些东西是否是通过引用传递存在分歧的原因。
但是,无论您使用什么定义,都必须在不同语言中一致使用它。你不能说一种语言具有按值传递,并且在另一种语言中具有完全相同的语义并说它是按引用传递。指出语言之间的类比是解决这一争议的最佳方式,因为尽管人们可能对特定语言的传递模式有强烈的看法,但当你将相同的语义与其他语言进行对比时,有时会带来反直觉的结果,迫使他们重新思考他们的定义。
- 一种主要观点是 Java 仅是按值传递的。 (在互联网上到处搜索,你都会找到这种观点。)这种观点是对象不是值,而是总是通过引用进行操作,因此引用是按值分配或传递的。这种观点认为,引用传递的测试是是否可以分配给调用范围内的变量。
如果你同意这一观点,那么你还必须考虑大多数语言,包括 Python、Ruby、OCaml、Scheme、Smalltalk、SML、Go、JavaScript、Objective-C 等多种语言。 仅按值传递。如果您觉得这些内容很奇怪或违反直觉,我要求您指出为什么您认为这些语言中的对象的语义与 Java 中的对象的语义不同。 (我知道其中一些语言可能明确声称它们是按引用传递的;但它们所说的无关紧要;必须根据实际行为将一致的定义应用于所有语言。)
- 如果您采取相反的态度如果认为Java中的对象是按引用传递的,那么您也必须将C视为按引用传递。
以 Java 为例:
class Thing { int x; }
void func(Thing object){ object.x = 42; object = null; }
Thing something = null;
something = new Thing();
func(something);
在 C 中,它相当于:
typedef struct { int x; } Thing;
void func(Thing *object){ object->x = 42; object = NULL; }
Thing *something = NULL;
something = malloc(sizeof Thing);
memset(something, 0, sizeof(something));
func(something);
// later:
free(something);
我声称上面的内容在语义上是等效的;只是语法不同。唯一的语法差异是:
- C 需要显式的
*
来表示指针类型; Java 的引用(指向对象的指针)类型不需要显式的*
。 - C使用
->
通过指针访问字段; Java 只是使用.
- Java 使用
new
为堆上的新对象动态分配内存; C使用malloc
来分配它,然后我们需要初始化内存。 - Java 有垃圾收集功能
请注意,重要的是,
- 使用对象调用函数的语法在两种情况下都是相同的:
func(something)
,无需执行任何诸如获取地址之类的操作。 - 在这两种情况下,对象都是动态分配的(它可能超出函数的范围)。并且
- 在这两种情况下,函数内的
object = null;
不会影响调用范围。
因此,两种情况下的语义是相同的,因此如果您调用 Java 传递引用,则也必须调用 C 传递引用。
我的答案看起来更像是评论,但它太长,无法放入评论(并且无法正确格式化)。
如何循环范围
我建议您查看 Chip Pearson 页面 了解有关优化 VBA,尤其是 VBA 中的范围循环。
当您遍历范围时,您应该使用
foreach
语句,如本示例中所述:查找最后一个空单元格
您的代码似乎尝试查找最后一个空单元格。您可以轻松地使用
您可以在 ozgrid 上找到更多提示(即使它们不要使用
rows.count
)避免选择
如果您尝试
选择
循环中的每个单元格,您的代码将会非常非常慢。你最好使用VBA的对象模型。
例如,如果您只想复制单元格的值:
不做
做
My answer will better look like a comment but it is too long to fit in a comment (and cannot be formatted properly).
How to loop over a range
I advise you to have a look at Chip Pearson page about optimizing VBA, especially looping over range in VBA.
When you loop over range, you shoul use the
for each
statement as described in this example:Finding the last empty cell
Your code seems to try to find the last empty cell. You can do it easily with
You can find some more tips on ozgrid (even if they don't use
rows.count
)Avoiding Selects
Your code will be very very slow if you are trying to
Select
every cell in a loop.You'd better use the object model of VBA.
For instance, if you only want to copy the value of a cell:
Don't do
Do
如何将单元格值设置为循环内容?