ArrayTypeReference.cs
56 lines
| 1.4 KiB
| text/x-csharp
|
CSharpLexer
|
|
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(); | |||
| } | |||
| } | |||
| } |
