ArrayTypeReference.cs
56 lines
| 1.4 KiB
| text/x-csharp
|
CSharpLexer
cin
|
r278 | using System; | |
using System.Text; | |||
namespace Implab.ServiceHost.Unity { | |||
public class ArrayTypeReference : TypeReference { | |||
public int Rank { get; private set; } | |||
public TypeReference ItemsType { get; private set; } | |||
public override string Name { | |||
get { | |||
return ItemsType.Name; | |||
} | |||
} | |||
public override string ClrName { | |||
get { | |||
return new StringBuilder() | |||
.Append(ItemsType.ClrName) | |||
.Append("[") | |||
.Append(',', Rank - 1) | |||
.Append("]") | |||
.ToString(); | |||
} | |||
} | |||
public override string Namespace { | |||
get { | |||
return ItemsType.Namespace; | |||
} | |||
} | |||
public override int GenericParametersCount { | |||
get { | |||
return 0; | |||
} | |||
} | |||
internal ArrayTypeReference(TypeReference itemsType, int rank) { | |||
ItemsType = itemsType; | |||
Rank = rank; | |||
} | |||
internal override void Visit(TypeResolutionContext visitor) { | |||
visitor.Visit(this); | |||
} | |||
override public string ToString() { | |||
return new StringBuilder() | |||
.Append(ItemsType.ToString()) | |||
.Append('[') | |||
.Append(',', Rank - 1) | |||
.Append(']') | |||
.ToString(); | |||
} | |||
} | |||
} |