Skip to content

Instantly share code, notes, and snippets.

@bentayloruk
Created October 15, 2012 10:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bentayloruk/3891935 to your computer and use it in GitHub Desktop.
Save bentayloruk/3891935 to your computer and use it in GitHub Desktop.
Person Record Type Example
[CompilationMapping(SourceConstructFlags.RecordType)]
[Serializable]
public sealed class Person : IEquatable<Program.Person>, IStructuralEquatable, IComparable<Program.Person>, IComparable, IStructuralComparable
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal string Name@;
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal string Surname@;
[CompilationMapping(SourceConstructFlags.Field, 0)]
public string Name
{
get
{
return this.Name@;
}
}
[CompilationMapping(SourceConstructFlags.Field, 1)]
public string Surname
{
get
{
return this.Surname@;
}
}
public Person(string name, string surname)
{
this.Name@ = name;
this.Surname@ = surname;
}
[CompilerGenerated]
public sealed override int CompareTo(Program.Person obj)
{
if (this != null)
{
if (obj == null)
{
return 1;
}
IComparer genericComparer = LanguagePrimitives.GenericComparer;
int num = string.CompareOrdinal(this.Name@, obj.Name@);
if (num < 0)
{
return num;
}
if (num > 0)
{
return num;
}
IComparer genericComparer2 = LanguagePrimitives.GenericComparer;
return string.CompareOrdinal(this.Surname@, obj.Surname@);
}
else
{
if (obj != null)
{
return -1;
}
return 0;
}
}
[CompilerGenerated]
public sealed override int CompareTo(object obj)
{
return this.CompareTo((Program.Person)obj);
}
[CompilerGenerated]
public sealed override int CompareTo(object obj, IComparer comp)
{
Program.Person person = (Program.Person)obj;
Program.Person person2 = person;
if (this != null)
{
if ((Program.Person)obj == null)
{
return 1;
}
int num = string.CompareOrdinal(this.Name@, person2.Name@);
if (num < 0)
{
return num;
}
if (num > 0)
{
return num;
}
return string.CompareOrdinal(this.Surname@, person2.Surname@);
}
else
{
if ((Program.Person)obj != null)
{
return -1;
}
return 0;
}
}
[CompilerGenerated]
public sealed override int GetHashCode(IEqualityComparer comp)
{
if (this != null)
{
int num = 0;
int arg_33_0 = -1640531527;
string surname@ = this.Surname@;
num = arg_33_0 + (((surname@ == null) ? 0 : surname@.GetHashCode()) + ((num << 6) + (num >> 2)));
int arg_5E_0 = -1640531527;
string name@ = this.Name@;
return arg_5E_0 + (((name@ == null) ? 0 : name@.GetHashCode()) + ((num << 6) + (num >> 2)));
}
return 0;
}
[CompilerGenerated]
public sealed override int GetHashCode()
{
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer);
}
[CompilerGenerated]
public sealed override bool Equals(object obj, IEqualityComparer comp)
{
if (this == null)
{
return obj == null;
}
Program.Person person = obj as Program.Person;
if (person != null)
{
Program.Person person2 = person;
return string.Equals(this.Name@, person2.Name@) && string.Equals(this.Surname@, person2.Surname@);
}
return false;
}
[CompilerGenerated]
public sealed override bool Equals(Program.Person obj)
{
if (this != null)
{
return obj != null && string.Equals(this.Name@, obj.Name@) && string.Equals(this.Surname@, obj.Surname@);
}
return obj == null;
}
[CompilerGenerated]
public sealed override bool Equals(object obj)
{
Program.Person person = obj as Program.Person;
return person != null && this.Equals(person);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment