未初始化的哈希键的默认值

时间:2011-02-21 16:47:05

标签: perl c#-2.0

与Perl类似,如果散列键未初始化,则执行以下代码

$hash{$key} =~ $hash{$key}++

然后该特定键的值增加到1(因为,它首先是未定义的,然后根据上下文,这里它是numaical ...它将值取为0 ...增加它1)。

我的问题是,在C#的情况下是否也遵循相同的概念?我的意思是,如果我在c#中执行上面的代码会是什么结果呢?它会是1还是什么?

有什么想法吗?

谢谢, 拉胡尔

2 个答案:

答案 0 :(得分:3)

这段代码毫无意义。

如果您想知道密钥中是否存在密钥:

if (exists $hash{$key}) { ... }

如果您想知道它是否定义了值:

if (defined $hash{$key}) { ... }

如果要增加值,

$散列{$键} ++

实际上,你试图以一种相当荒谬的方式进行正则表达式匹配。

答案 1 :(得分:0)

OOPS !!!对不起......我明白了实际上提到的Perl代码是为了检查/确认特定的" KEY"存在与否......或者那种存在。

所以,在C#中,我只需检查" hashtable.containskey(key)" ......那就行了。

感谢。