You've already forked linux-packaging-mono
Imported Upstream version 5.10.0.47
Former-commit-id: d0813289fa2d35e1f8ed77530acb4fb1df441bc0
This commit is contained in:
parent
88ff76fe28
commit
e46a49ecf1
101
mcs/tests/test-ref-08.cs
Normal file
101
mcs/tests/test-ref-08.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
|
||||
namespace ClassLibrary1
|
||||
{
|
||||
public class C
|
||||
{
|
||||
|
||||
class B
|
||||
{
|
||||
int v;
|
||||
public ref int this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return ref v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class Gen<T> where T : struct
|
||||
{
|
||||
T v;
|
||||
public ref T this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return ref v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Val
|
||||
{
|
||||
}
|
||||
|
||||
class BB
|
||||
{
|
||||
Val v;
|
||||
public ref Val this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return ref v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MM ()
|
||||
{
|
||||
var bbb = new BB();
|
||||
Val v1 = bbb[0];
|
||||
bbb[1] = v1;
|
||||
|
||||
ref Val v2 = ref bbb[2];
|
||||
bbb[2] = v2;
|
||||
}
|
||||
|
||||
static int[] a = new int[1];
|
||||
public static void Main()
|
||||
{
|
||||
var bb = new B();
|
||||
int b = 1;
|
||||
bb[0] = b;
|
||||
a[0] = Add2(ref b, 2);
|
||||
|
||||
var bbb = new BB();
|
||||
bbb[0] = new Val();
|
||||
|
||||
var v = new Val();
|
||||
bbb[1] = v;
|
||||
|
||||
var v2 = bbb[2];
|
||||
|
||||
bbb[3] = v2;
|
||||
|
||||
|
||||
bbb[3] = bbb[2];
|
||||
|
||||
|
||||
|
||||
var ggg = new Gen<Val>();
|
||||
ggg[0] = new Val();
|
||||
|
||||
var g = new Val();
|
||||
ggg[1] = v;
|
||||
|
||||
var g2 = ggg[2];
|
||||
|
||||
ggg[3] = v2;
|
||||
|
||||
|
||||
ggg[3] = ggg[2];
|
||||
}
|
||||
|
||||
public static ref int Add2(ref int a, int b)
|
||||
{
|
||||
return ref a;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user