maui/Xamarin.Forms.Xaml/XmlName.cs

58 строки
1.5 KiB
C#

using System.Diagnostics;
namespace Xamarin.Forms.Xaml
{
[DebuggerDisplay("{NamespaceURI}:{LocalName}")]
internal struct XmlName
{
public static readonly XmlName _CreateContent = new XmlName("_", "CreateContent");
public static readonly XmlName xKey = new XmlName("x", "Key");
public static readonly XmlName xName = new XmlName("x", "Name");
public static readonly XmlName xTypeArguments = new XmlName("x", "TypeArguments");
public static readonly XmlName xArguments = new XmlName("x", "Arguments");
public static readonly XmlName xFactoryMethod = new XmlName("x", "xFactoryMethod");
public string NamespaceURI { get; }
public string LocalName { get; }
public XmlName(string namespaceUri, string localName)
{
NamespaceURI = namespaceUri;
LocalName = localName;
}
public override bool Equals(object obj)
{
if (obj == null)
return false;
if (obj.GetType() != typeof (XmlName))
return false;
var other = (XmlName)obj;
return NamespaceURI == other.NamespaceURI && LocalName == other.LocalName;
}
public override int GetHashCode()
{
unchecked
{
int hashCode = 0;
if (NamespaceURI != null)
hashCode = NamespaceURI.GetHashCode();
if (LocalName != null)
hashCode = (hashCode * 397) ^ LocalName.GetHashCode();
return hashCode;
}
}
public static bool operator ==(XmlName x1, XmlName x2)
{
return x1.NamespaceURI == x2.NamespaceURI && x1.LocalName == x2.LocalName;
}
public static bool operator !=(XmlName x1, XmlName x2)
{
return !(x1 == x2);
}
}
}