.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

194 lines
3.9 KiB

using System;
namespace ICSharpCode.Decompiler.Tests.TestCases.Ugly
{
public class DisplayClass
{
public Program thisField;
public int field1;
public string field2;
}
public class NestedDisplayClass
{
public DisplayClass field3;
public int field1;
public string field2;
}
public class Program
{
public int Rand()
{
throw new NotImplementedException();
}
public void Test1()
{
DisplayClass displayClass = new DisplayClass {
field1 = 42,
field2 = "Hello World!"
};
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.field2);
}
public void Test2()
{
DisplayClass displayClass = new DisplayClass {
field1 = 42,
field2 = "Hello World!"
};
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.GetHashCode());
}
public void Test3()
{
DisplayClass displayClass = new DisplayClass {
field1 = 42,
field2 = "Hello World!"
};
Console.WriteLine("{0} {1}", displayClass.field1, displayClass);
}
public void Test4()
{
DisplayClass displayClass = new DisplayClass {
thisField = this,
field1 = 42,
field2 = "Hello World!"
};
NestedDisplayClass nested = new NestedDisplayClass {
field1 = 4711,
field2 = "ILSpy"
};
if (displayClass.field1 > 100)
{
nested.field3 = displayClass;
}
else
{
nested.field3 = null;
}
Console.WriteLine("{0} {1}", displayClass, nested.field3);
}
public void Test5()
{
DisplayClass displayClass = new DisplayClass {
thisField = this,
field1 = 42,
field2 = "Hello World!"
};
NestedDisplayClass nested = new NestedDisplayClass {
field1 = 4711,
field2 = "ILSpy"
};
if (displayClass.field1 > 100)
{
nested.field3 = displayClass;
}
else
{
nested.field3 = null;
}
Console.WriteLine("{0} {1}", nested.field2 + nested.field1, nested.field3);
}
public void Issue1898(int i)
{
DisplayClass displayClass = new DisplayClass {
thisField = this,
field1 = i
};
NestedDisplayClass nested = new NestedDisplayClass();
while (true)
{
switch (Rand())
{
case 1:
nested.field1 = Rand();
break;
case 2:
nested.field2 = Rand().ToString();
break;
case 3:
nested.field3 = displayClass;
break;
default:
Console.WriteLine(nested.field1);
Console.WriteLine(nested.field2);
Console.WriteLine(nested.field3);
break;
}
}
}
public void Test6(int i)
{
DisplayClass displayClass = new DisplayClass {
field1 = i,
field2 = "Hello World!"
};
if (i < 0)
{
i = -i;
}
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.field2);
}
public void Test6b(int i)
{
int num = i;
DisplayClass displayClass = new DisplayClass {
field1 = num,
field2 = "Hello World!"
};
if (num < 0)
{
num = -num;
}
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.field2);
}
public void Test7(int i)
{
DisplayClass displayClass = new DisplayClass {
field1 = i,
field2 = "Hello World!"
};
Console.WriteLine("{0} {1} {2}", displayClass.field1++, displayClass.field2, i);
}
public void Test8(int i)
{
DisplayClass displayClass = new DisplayClass {
field1 = i,
field2 = "Hello World!"
};
i = 42;
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.field2);
}
public void Test8b(int i)
{
int num = i;
DisplayClass displayClass = new DisplayClass {
field1 = num,
field2 = "Hello World!"
};
num = 42;
Console.WriteLine("{0} {1}", displayClass.field1, displayClass.field2);
}
// public void Test9()
// {
// DisplayClass displayClass = new DisplayClass {
// thisField = this,
// field1 = 1,
// field2 = "Hello World!"
// };
// displayClass.thisField = new Program();
// Console.WriteLine("{0} {1}", this, displayClass.thisField);
// }
}
}