60 строки
1.7 KiB
C#
60 строки
1.7 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 static readonly XmlName xDataType = new XmlName("x", "DataType");
|
|
public static readonly XmlName Empty = new XmlName();
|
|
|
|
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);
|
|
}
|
|
}
|
|
} |