summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Reflection/Emit/FieldToken.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Reflection/Emit/FieldToken.cs')
-rw-r--r--src/mscorlib/src/System/Reflection/Emit/FieldToken.cs85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Reflection/Emit/FieldToken.cs b/src/mscorlib/src/System/Reflection/Emit/FieldToken.cs
new file mode 100644
index 0000000000..e1f790cefc
--- /dev/null
+++ b/src/mscorlib/src/System/Reflection/Emit/FieldToken.cs
@@ -0,0 +1,85 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+/*============================================================
+**
+**
+**
+**
+**
+** Purpose: Represents a Field to the ILGenerator Class
+**
+**
+===========================================================*/
+namespace System.Reflection.Emit {
+
+ using System;
+ using System.Reflection;
+ using System.Security.Permissions;
+
+ // The FieldToken class is an opaque representation of the Token returned
+ // by the Metadata to represent the field. FieldTokens are generated by
+ // Module.GetFieldToken(). There are no meaningful accessors on this class,
+ // but it can be passed to ILGenerator which understands it's internals.
+ [Serializable]
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public struct FieldToken
+ {
+ public static readonly FieldToken Empty = new FieldToken();
+
+ internal int m_fieldTok;
+ internal Object m_class;
+
+ // Creates an empty FieldToken. A publicly visible constructor so that
+ // it can be created on the stack.
+ //public FieldToken() {
+ // m_fieldTok=0;
+ // m_attributes=0;
+ // m_class=null;
+ //}
+ // The actual constructor. Sets the field, attributes and class
+ // variables
+
+ internal FieldToken (int field, Type fieldClass) {
+ m_fieldTok=field;
+ m_class = fieldClass;
+ }
+
+ public int Token {
+ get { return m_fieldTok; }
+ }
+
+
+ // Generates the hash code for this field.
+ public override int GetHashCode()
+ {
+ return (m_fieldTok);
+ }
+
+ // Returns true if obj is an instance of FieldToken and is
+ // equal to this instance.
+ public override bool Equals(Object obj)
+ {
+ if (obj is FieldToken)
+ return Equals((FieldToken)obj);
+ else
+ return false;
+ }
+
+ public bool Equals(FieldToken obj)
+ {
+ return obj.m_fieldTok == m_fieldTok && obj.m_class == m_class;
+ }
+
+ public static bool operator ==(FieldToken a, FieldToken b)
+ {
+ return a.Equals(b);
+ }
+
+ public static bool operator !=(FieldToken a, FieldToken b)
+ {
+ return !(a == b);
+ }
+
+ }
+}