C#中String.Format的含义在以下上下文中?

时间:2014-03-27 07:50:04

标签: c# xpath string.format xpathnodeiterator

我刚刚通过某些代码...我想知道以下代码的含义

string format = "//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
string xpath = String.Format( format, userName, password );    

xpath稍后用于创建xPathNodeIterator对象。我不太明白如何使用String.Format以及迭代时XPathNodeIterator会迭代哪个节点?

4 个答案:

答案 0 :(得分:2)

阅读String.Format的详细信息。它

  

将指定字符串中的每个格式项替换为相应对象值的文本。

这意味着 xpath 将包含 format 字符串,其中格式字符串中的 {0} 将被替换值为用户名 {1} 的值将替换为密码的值

假设

string userName = "Ehsan";
string password = "Password";
string format = "//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";
string xpath = String.Format(format, userName, password);  

Xpath将等同于

//User[UserName="Ehsan" and EncryptPassword="Password"]

答案 1 :(得分:1)

大致相当于代码

string xpath = "//User[UserName=\"" + userName.ToString() + "\" and EncryptPassword=\"" + password.ToString() + "\"]";

String.Format只是让您轻松替换测试字符串中的占位符,并可选择添加其他格式。

答案 2 :(得分:0)

只是意味着分别对userNamepassword使用{0}{1}字符串"//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]";

这将为您提供结果字符串:

"//User[UserName=\"John\" and EncryptPassword=\"correctHorseBatteryStaple\"]"

(假设userName的值为John,并且......好吧,you can guess the password)。

答案 3 :(得分:0)

假设:

userName = "Peter"
password = "abc123"

您的xpath将是:

String.Format(format, userName, password)
String.Format("//User[UserName=\"{0}\" and EncryptPassword=\"{1}\"]", "Peter", "abc123")

当{0}被userName取代时," Peter"和{1}被passowrd取代," abc123",你的xpath变为:

//User[UserName="Peter" and EncryptedPassword="abc123"]

要记住的是,所有{0},{1}等都将被后面的字符串替换。