检查大小类型是否为空的正确方法是什么
本文关键字:方法 是什么 小类 类型 是否 检查 | 更新日期: 2023-09-27 18:32:36
假设我有这样的方法:
public SomeSizeCheckingMethod(Size sizeData)
{
var isSizeEmpty = (sizeData == new Size(0, 0));
//some other logic based on this question
}
要检查空大小,我的选择似乎是:
sizeData == Size.Empty
或
sizeData.IsEmpty
或
sizeData == new Size(0, 0);
我宁愿不 new() 一个大小类型只是为了检查我是否有一个无量纲的大小。 根据此处的 .NET Size 文档,看起来有几种方法可以检查空大小,但备注部分似乎有一些警告。
所有这些选项在功能上是否等效?
根据文档Size.IsEmpty
如果Width
或Height
0
,将true
。
由于您希望Height
和Widht
都为零,因此您可以轻松比较它们:
var isSizeEmpty = (sizeData.Width == 0 && sizeData.Height == 0);
将您的sizeData
与Size.Empty
进行比较是行不通的,因为文档说:
调用此属性时,Size 实例的宽度和高度等于负无穷大。
将sizeData
与new Size(0, 0)
进行比较既简单又干净,看起来(对我来说)比我的第一个变体好一点。但是差异(性能和内存)将无法测量。
如果这是System.Drawing.Size
(WinForms),则可以只使用 IsEmpty
属性。
但是,System.Windows.Size
(WPF) 有一个奇怪的IsEmpty
实现:
public bool IsEmpty
{
get
{
return (this._width < 0.0);
}
}
因此,如果要检查它是否为默认Size
值,请将其与Size.Empty
或default(Size)
进行比较
与大小相比。空的应该是最好的。
查看 MSDN