1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
using System;
namespace Mono.Debugger.Languages
{
public abstract class TargetArrayType : TargetType
{
TargetType element_type;
string full_name;
int rank;
protected TargetArrayType (TargetType element_type, int rank)
: base (element_type.Language, TargetObjectKind.Array)
{
this.element_type = element_type;
this.rank = rank;
full_name = compute_fullname ();
}
public int Rank {
get { return rank; }
}
public TargetType ElementType {
get { return element_type; }
}
public override bool IsByRef {
get { return true; }
}
public override string Name {
get { return full_name; }
}
string compute_fullname ()
{
string rank_specifier;
if (Rank == 1)
rank_specifier = "[]";
else
rank_specifier = "[" + new String (',', Rank-1) + "]";
return element_type.Name + rank_specifier;
}
}
}
|