Size is part of the set of value types, including
Point and Rectangle, that are
used to define basic drawing geometry. It uses integers to represent
horizontal and vertical extent (such as the width and height of a
Rectangle).
In addition to being able to retrieve the Width
and Height, you can determine whether the
Size value is Empty (which
means both the Width and Height
are equal to 0).
As with the other fundamental value types in the framework, there is
an equivalent floating-point structure called
SizeF. Three conversion functions (Round(), Truncate(), and Ceiling()) are provided to allow you to convert from the float
representation to the integer, and there is an operator that allows
you to cast the other way. You can also convert to a
Point.
You are also provided with addition, subtraction, and comparison
operators.
Note that there is no intrinsic performance advantage in using the
integer version of this type over the floating-point equivalent. As
of v1.0 of the .NET Framework, most drawing functions are implemented
in terms of the floating-point version anyway.
public struct Size {
// Public Constructors
public Size(int width, int height);
public Size(Point pt);
// Public Static Fields
public static readonly Size Empty; // = {Width=0, Height=0}
// Public Instance Properties
public int Height{set; get; }
public bool IsEmpty{get; }
public int Width{set; get; }
// Public Static Methods
public static Size Ceiling(SizeF value);
public static Size Round(SizeF value);
public static Size Truncate(SizeF value);
public static Size operator -(Size sz1, Size sz2);
public static Size operator +(Size sz1, Size sz2);
public static bool operator !=(Size sz1, Size sz2);
public static bool operator ==(Size sz1, Size sz2);
public static explicit operator Point(Size size);
public static implicit operator SizeF(Size p);
// Public Instance Methods
public override bool Equals(object obj); // overrides ValueType
public override int GetHashCode(); // overrides ValueType
public override string ToString(); // overrides ValueType
}