Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TextBox.Clear()或TextBox.Text=string.Empty_C#_Wpf - Fatal编程技术网

C# TextBox.Clear()或TextBox.Text=string.Empty

C# TextBox.Clear()或TextBox.Text=string.Empty,c#,wpf,C#,Wpf,他们之间有什么区别吗?多谢各位 TextBox.Clear(); TextBox.Text = string.Empty; ---清除() Clear()方法不仅仅是从文本框中删除文本。它删除所有内容并重置文本选择 --字符串。空 出于某种模糊的原因,string.Empty不是常量。这意味着在许多需要编译时常量的情况下,string.Empty甚至不合法。这包括switch语句中的case*块、可选参数的默认值、应用属性中的参数和属性,以及许多其他情况(留给读者)*。因此,在某些常见情况

他们之间有什么区别吗?多谢各位

TextBox.Clear();  
TextBox.Text = string.Empty;
---清除()

Clear()方法不仅仅是从文本框中删除文本。它删除所有内容并重置文本选择

--字符串。空


出于某种模糊的原因,string.Empty不是常量。这意味着在许多需要编译时常量的情况下,string.Empty甚至不合法。这包括switch语句中的case*块、可选参数的默认值、应用属性中的参数和属性,以及许多其他情况(留给读者)*。因此,在某些常见情况下,字符串.Empty是不允许的。

实际上:不允许。从内部来看,这是一个问题。两者都以完全不同的方式清除文本


我不敢告诉你哪一个更好,但如果你想了解来源,一个重要的区别是使用
TextBox.Clear()
将清除文本框内容,但它将保持所有绑定不变

如果使用
TextBox.Text=string.Empty,将覆盖任何现有绑定

例如,如果您使用如下文本绑定:

<TextBox Text="{Binding Path=Description}"></TextBox>


然后必须使用Clear()方法。否则,它将破坏您的绑定。

事实上,
string.Empty
不是一个常量,这与问题根本没有关系(它是一个
静态只读
)。将
Text
设置为
string.Empty
-实际上-会删除所有concrent并重置选择。它是以不同的方式实现的,是的,但它的作用是相同的