我认为你的理解是正确的,当使用值时GridUnitType.Auto
,传递给构造函数的第一个值是多余的,因为大小将由内容对象决定。
GridLength
在结构构造函数的上下文中保留此参数(即使在此实例中未使用)有些意义,因为它允许第二个参数类型包含描述所有可用状态的值GridUnitType
。
从文档中:
枚举类型GridUnitType
可以包含以下值:
Auto - The size is determined by the size properties of the content object.
Pixel - The value is expressed as a pixel.
Star - The value is expressed as a weighted proportion of available space.
GridUnitType.Pixel
所以真的,第一个参数只有在第二个参数设置为or时才相关GridUnitType.Star
。
它不会以其他方式巧妙地工作,例如,如果您尝试让构造函数接受 1 个参数作为 a ,并且仅在使用orGridUnitType
时才需要第二个参数。Pixel
Star
这样一来,您将受益于拥有一个 1 参数构造函数,该构造函数接受一个 double 而无需指定其他类型。虽然它在使用时确实有可能看起来很奇怪的两个参数构造函数的成本Auto
(如您的示例中所示)。