C# String.Replace()不';“我不能和”一起工作|&引用;
在当前项目中,我希望动态设置connectionString。 我从默认设置中获取带有占位符(C# String.Replace()不';“我不能和”一起工作|&引用;,c#,visual-studio,replace,filepath,C#,Visual Studio,Replace,Filepath,在当前项目中,我希望动态设置connectionString。 我从默认设置中获取带有占位符(“| DataDirectory |”)的字符串,然后我想用实际路径替换该占位符 我的代码: connectionString = Properties.Settings.Default.KDatabaseConnectionString; connectionString.Replace(@"|DataDirectory|", Application.StartupPath); 我不能让它工作,它什
“| DataDirectory |”
)的字符串,然后我想用实际路径替换该占位符
我的代码:
connectionString = Properties.Settings.Default.KDatabaseConnectionString;
connectionString.Replace(@"|DataDirectory|", Application.StartupPath);
我不能让它工作,它什么也做不了。当我在dubug模式下运行代码时,我可以看到连接字符串包含“| DataDirectory |
”,但它不会替换它
我在这里看到了很多关于string.replace()
不起作用的问题,但没有一个是关于我的问题。有人有主意吗
编辑:好的,知道了,谢谢。这是一个糟糕的新手错误。您没有将结果放回
连接字符串中
试一试
您没有使用纯方法的返回值
换句话说,.Replace()
方法实际上并不对变量本身做任何事情,只返回新值供您使用
您需要的声明是:
connectionString=connectionString.Replace(@“| DataDirectory |”,Application.StartupPath)代码>
否则,您将执行以下等效操作:
public string Replace(string str)
{
Do something...
return str;
}
其中str通过值
而不是引用
传递,然后不使用返回的值。好的,您正在替换字符串,但没有分配它,替换对不可变字符串本身不起作用,您需要将其分配回ConnectionStringTanks,我已经半年没写代码了,现在我开始犯这样严重的错误了……别介意。我认为我们大多数人在职业生涯中至少经历过或甚至犯过不止一次类似的错误;)请提供更多信息,说明此答案解决问题的原因
connectionString = connectionString.Replace(@"|DataDirectory|", Application.StartupPath);
public string Replace(string str)
{
Do something...
return str;
}