C# '#';字符串运算符

C# '#';字符串运算符,c#,string,C#,String,我有一段代码,我试图找出字符串中的散列(#)。下面是一段代码 var key = string.Format( "{0}#{1}#{2}", value1, value2, value3); if ( !instance.Map.ContainsKey( key ) ) { throw new Exception("Dear Customer, your order cant be identified."); } 我想我从来没有在C 如果我没有提供value3,它仍然会找到键。因此

我有一段代码,我试图找出字符串中的
散列(#)

下面是一段代码

var key = string.Format( "{0}#{1}#{2}", value1, value2, value3);

if ( !instance.Map.ContainsKey( key ) )
{
   throw new Exception("Dear Customer, your  order cant be identified.");
}
我想我从来没有在
C


如果我没有提供
value3
,它仍然会找到键。因此我认为#表示强制或部分强制。如果您有:

var key = string.Format("{0}#{1}#{2}", 1, 2, 3);
您的输出字符串将是:

1#2#3

它(
#
)将用作结果字符串中的符号

在这里,开发者希望在值之间附加带有此字符串的
#
。此代码中的#in C#没有特殊用途,因此不要因为此
#
而混淆自己。您的输出可以是这样的

int value1= 1;
int value1= 1;
int value1= 1;
var key = string.Format( "{0}#{1}#{2}", value1, value2, value3);

Output:1#1#1

所以它只是一个文本,没有什么特别的。

它只是文本输出的一部分,没有被解释为任何特别的东西


如果您对此进行了测试,您会立即看到每个参数(
{n}
)都被参数参数数组中指定的适当值替换,并且
#
保持原样-逐字输出。

您得到的输出..这意味着字符将出现在3个值之间。@user1702369,有什么需要理解的?您可以使用任何符号来代替
#
,您可以使用
-
任何符号,它将位于结果字符串中。这是不行的anything@user1702369您以前可能没有在c中使用过,但您在这里并没有真正使用它。您的输出在(“”)中。因此,介于“”之间的任何内容都将出现在您的输出中,hense并没有对您造成任何伤害。@user1702369,从您编辑的评论中,我相信这个带有symbole
的键在字典
articlesMap
中使用。它们由三个由
#
符号分隔的值组成。