52 lines
699 B
C#
52 lines
699 B
C#
|
//
|
||
|
// This exercises the various ways in which the new operator works
|
||
|
// with value types.
|
||
|
//
|
||
|
|
||
|
using System;
|
||
|
|
||
|
struct S {
|
||
|
int v;
|
||
|
}
|
||
|
|
||
|
class X {
|
||
|
static bool receive, create, create_and_box;
|
||
|
|
||
|
static void receiver (S x)
|
||
|
{
|
||
|
receive = true;
|
||
|
}
|
||
|
|
||
|
static object BoxS ()
|
||
|
{
|
||
|
create_and_box = true;
|
||
|
return new S ();
|
||
|
}
|
||
|
|
||
|
static S Plain ()
|
||
|
{
|
||
|
create = true;
|
||
|
return new S ();
|
||
|
}
|
||
|
|
||
|
public static int Main ()
|
||
|
{
|
||
|
object a = new S ();
|
||
|
receiver (new S ());
|
||
|
S s = Plain ();
|
||
|
object o = BoxS ();
|
||
|
|
||
|
if (a == null)
|
||
|
return 1;
|
||
|
if (receive == false)
|
||
|
return 2;
|
||
|
if (create == false)
|
||
|
return 3;
|
||
|
if (create_and_box == false)
|
||
|
return 4;
|
||
|
|
||
|
Console.WriteLine ("Test pass");
|
||
|
return 0;
|
||
|
}
|
||
|
}
|