我一直在想,为什么在C#中不允许使用以前在子范围中使用的变量名。如下所示:
if (true)
{
int i = 1;
}
int i = 2;
编译上述代码会产生一个错误:
名为“i”的局部变量不能在此作用域中声明,因为它会给'i‘赋予不同的含义,因为'i’已经在‘子’范围中用于表示其他东西。
但是,您也不能使用在子作用域中定义的变量。上面的代码在Java中运行得很好,我看不出为什么它在C#中也不起作用。我肯定有一个很好的理由,但这是什么呢?
我正在创建一个PowerShell函数,用于在AD中使用图形用户界面搜索用户。该函数将ShowDialog()一个Windows form供用户进行搜索,然后当用户单击OK时,该窗体将关闭,函数将返回一个包含他们选择的AD用户的ArrayList。
在表单关闭之前,一切都在正常运行。表单关闭后,我的ArrayList突然计数为0,而不是包含他们选择的AD用户。
我不明白为什么ArrayList ($alRetrievedSelection)会被清空。我只有一行修改这个ArrayList的代码。对于我自己的调试目的,其他一切都只是一个写警告。
#This function returns an
我有两个函数,一个函数调用另一个函数。
下面是我创建的代码结构的一个简单类比:
function test1(){
alert(a);//a is not identified here even when test1() is called under test2 which has a defined in scope
alert(b);//b is identified here
}
function test2(){
var a = 'a';//Defining a
test1();//Calling test1
我以为我有个简单的或逻辑上的问题,但经过几个小时的调试,我至少发现了一些东西,我的ng点击不起作用。下面的示例ng-单击ng内的tht -重复不触发。(除非您创建一个函数来激发它)。
看看这个,你就知道我的问题了。
html
<div ng-controller="apiCtrl">
<p ng-click="show=!show">Click me I'm outside of li tags</p>
<br />
<ul>
<li ng-re
假设我有一个树表
h y t
------- ----- ------------
id id id name
------- ----- ------------
1 1 1 john
2 2 2 alex
3 8 6 maggie
我有一个这样的查询:
select t.*,(select y.id from (select * h where h.id > t.id
我想在星号之间匹配单词:
This is a *test.*
这是大政方针:
\*(.*?)\*
但如果它被两个或更多的星号包围,我不想和它匹配:
This is a **test.**
因此,我更新了regex以反映这一点:
(?<!\*)\*(.*?)\*(?!\*)
然而,**test**仍然是匹配的。
为什么会这样呢?以及如何修复它?
我开始学习蟒蛇。我了解到,如果没有将值定义为参数,函数就不能使用值,但我正在练习并编写了一个小程序,调用一个没有参数的函数,它可以工作。我不明白它为什么会起作用,有人能解释一下为什么这个程序能工作吗?
以下是代码:
def sum():
return x + y
x = 10
y = 20
print("Total: ", sum())