[C] Adding deconstructors for common structs (#1320)
authorStephane Delcroix <stephane@delcroix.org>
Mon, 11 Dec 2017 21:40:46 +0000 (22:40 +0100)
committerGitHub <noreply@github.com>
Mon, 11 Dec 2017 21:40:46 +0000 (22:40 +0100)
* [C] Adding deconstructors for common structs

* [docs] update docs

Xamarin.Forms.Core/Point.cs
Xamarin.Forms.Core/Rectangle.cs
Xamarin.Forms.Core/Size.cs
Xamarin.Forms.Core/Thickness.cs
Xamarin.Forms.Core/VisualElement.cs
docs/Xamarin.Forms.Core/Xamarin.Forms/Point.xml
docs/Xamarin.Forms.Core/Xamarin.Forms/Rectangle.xml
docs/Xamarin.Forms.Core/Xamarin.Forms/Size.xml
docs/Xamarin.Forms.Core/Xamarin.Forms/Thickness.xml

index 5c6f547..909ea91 100644 (file)
@@ -91,5 +91,11 @@ namespace Xamarin.Forms
                {
                        return Math.Sqrt(Math.Pow(X - other.X, 2) + Math.Pow(Y - other.Y, 2));
                }
+
+               public void Deconstruct(out double x, out double y)
+               {
+                       x = X;
+                       y = Y;
+               }
        }
 }
\ No newline at end of file
index ac5460c..1b66f95 100644 (file)
@@ -240,5 +240,13 @@ namespace Xamarin.Forms
                {
                        return new Rectangle(Math.Round(X), Math.Round(Y), Math.Round(Width), Math.Round(Height));
                }
+
+               public void Deconstruct(out double x, out double y, out double width, out double height)
+               {
+                       x = X;
+                       y = Y;
+                       width = Width;
+                       height = Height;
+               }
        }
 }
\ No newline at end of file
index 4e709a1..10fd0a4 100644 (file)
@@ -106,5 +106,11 @@ namespace Xamarin.Forms
                {
                        return string.Format("{{Width={0} Height={1}}}", _width.ToString(CultureInfo.InvariantCulture), _height.ToString(CultureInfo.InvariantCulture));
                }
+
+               public void Deconstruct(out double width, out double height)
+               {
+                       width = Width;
+                       height = Height;
+               }
        }
 }
\ No newline at end of file
index 21ea667..21d5280 100644 (file)
@@ -88,5 +88,13 @@ namespace Xamarin.Forms
                {
                        return !left.Equals(right);
                }
+
+               public void Deconstruct(out double left, out double top, out double right, out double bottom)
+               {
+                       left = Left;
+                       top = Top;
+                       right = Right;
+                       bottom = Bottom;
+               }
        }
 }
\ No newline at end of file
index a66cb24..65f0a7d 100644 (file)
@@ -710,10 +710,7 @@ namespace Xamarin.Forms
 
                internal void MockBounds(Rectangle bounds)
                {
-                       _mockX = bounds.X;
-                       _mockY = bounds.Y;
-                       _mockWidth = bounds.Width;
-                       _mockHeight = bounds.Height;
+                       (_mockX, _mockY, _mockWidth, _mockHeight) = bounds;
                }
 
                internal virtual void OnConstraintChanged(LayoutConstraint oldConstraint, LayoutConstraint newConstraint)
index 1e9a3a4..e50b453 100644 (file)
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
+    <Member MemberName="Deconstruct">
+      <MemberSignature Language="C#" Value="public void Deconstruct (out double x, out double y);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Deconstruct(float64 x, float64 y) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>2.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="x" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="y" Type="System.Double&amp;" RefType="out" />
+      </Parameters>
+      <Docs>
+        <param name="x">To be added.</param>
+        <param name="y">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="Distance">
       <MemberSignature Language="C#" Value="public double Distance (Xamarin.Forms.Point other);" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float64 Distance(valuetype Xamarin.Forms.Point other) cil managed" />
index e891c98..3539e57 100644 (file)
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
+    <Member MemberName="Deconstruct">
+      <MemberSignature Language="C#" Value="public void Deconstruct (out double x, out double y, out double width, out double height);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Deconstruct(float64 x, float64 y, float64 width, float64 height) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>2.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="x" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="y" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="width" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="height" Type="System.Double&amp;" RefType="out" />
+      </Parameters>
+      <Docs>
+        <param name="x">To be added.</param>
+        <param name="y">To be added.</param>
+        <param name="width">To be added.</param>
+        <param name="height">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="Equals">
       <MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" />
index 8d3b738..1d350c8 100644 (file)
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
+    <Member MemberName="Deconstruct">
+      <MemberSignature Language="C#" Value="public void Deconstruct (out double width, out double height);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Deconstruct(float64 width, float64 height) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>2.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="width" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="height" Type="System.Double&amp;" RefType="out" />
+      </Parameters>
+      <Docs>
+        <param name="width">To be added.</param>
+        <param name="height">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="Equals">
       <MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" />
index 7addee5..e345208 100644 (file)
         <remarks>To be added.</remarks>
       </Docs>
     </Member>
+    <Member MemberName="Deconstruct">
+      <MemberSignature Language="C#" Value="public void Deconstruct (out double left, out double top, out double right, out double bottom);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Deconstruct(float64 left, float64 top, float64 right, float64 bottom) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>2.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="left" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="top" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="right" Type="System.Double&amp;" RefType="out" />
+        <Parameter Name="bottom" Type="System.Double&amp;" RefType="out" />
+      </Parameters>
+      <Docs>
+        <param name="left">To be added.</param>
+        <param name="top">To be added.</param>
+        <param name="right">To be added.</param>
+        <param name="bottom">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
     <Member MemberName="Equals">
       <MemberSignature Language="C#" Value="public override bool Equals (object obj);" />
       <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object obj) cil managed" />