我没有对我之前的问题Ignore Whitespace in textfield得到很好的回答,所以我有另一个问题,我希望它会对我有所帮助。
我在c#中有这个字符串声明:
public string MyURL { get; set; }
我的问题是:当用户在我的网络应用中设置此字符串时,我可以指定设置器的一些指令来忽略空格吗?
答案 0 :(得分:4)
private string _myUrl;
public string MyURL {
get { return _myUrl; }
set {
// ...
_myUrl = value.Replace(" ", string.Empty);
}
}
修改的
猜猜@Dmitry Bychenko是对的。我的答案并未涵盖所有potentiel案件。Regex
将是解决此问题的更好方法!
答案 1 :(得分:3)
空白不仅仅是空格(还有非破坏空格,零宽度空间等。),所以我建议使用正则表达式:
https://en.wikipedia.org/wiki/Whitespace_character
int count = 0;
var client = new MongoClient(connection);
// This while loop is to allow us to detect if we are connected to the MongoDB server
// if we are then we miss the execption but after 5 seconds and the connection has not
// been made we throw the execption.
while (client.Cluster.Description.State.ToString() == "Disconnected") {
Thread.Sleep(100);
if (count++ >= 50) {
throw new Exception("Unable to connect to the database. Please make sure that "
+ client.Settings.Server.Host + " is online");
}
}
答案 2 :(得分:0)
您可以使用Replace(" ", String.Empty)
来消除所有空格。
private string _MyURL;
public string MyURL
{
get
{
return _MyURL;
}
set
{
_MyURL = value.Replace(" ", String.Empty);
}
}
答案 3 :(得分:0)
你的意思是MyURL
还没有空格?
这可以帮助你:
private string _MyURL;
public string MyURL
{
get { return _MyURL; }
set { _MyURL = value.Replace(" ", ""); }
}
我为什么添加私有字段的解释很少: 如果你不这样做,你就会创建一个无限循环,因为setter再次调用setter。
希望这有助于你