PageRenderTime 40ms CodeModel.GetById 36ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/Mono.Cecil/Mono.Cecil/ParameterReference.cs

http://github.com/icsharpcode/ILSpy
C# | 75 lines | 36 code | 12 blank | 27 comment | 2 complexity | 225dac5e3fbd187489162c2395f32df2 MD5 | raw file
 1//
 2// ParameterReference.cs
 3//
 4// Author:
 5//   Jb Evain (jbevain@gmail.com)
 6//
 7// Copyright (c) 2008 - 2011 Jb Evain
 8//
 9// Permission is hereby granted, free of charge, to any person obtaining
10// a copy of this software and associated documentation files (the
11// "Software"), to deal in the Software without restriction, including
12// without limitation the rights to use, copy, modify, merge, publish,
13// distribute, sublicense, and/or sell copies of the Software, and to
14// permit persons to whom the Software is furnished to do so, subject to
15// the following conditions:
16//
17// The above copyright notice and this permission notice shall be
18// included in all copies or substantial portions of the Software.
19//
20// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27//
28
29using System;
30
31namespace Mono.Cecil {
32
33	public abstract class ParameterReference : IMetadataTokenProvider {
34
35		string name;
36		internal int index = -1;
37		protected TypeReference parameter_type;
38		internal MetadataToken token;
39
40		public string Name {
41			get { return name; }
42			set { name = value; }
43		}
44
45		public int Index {
46			get { return index; }
47		}
48
49		public TypeReference ParameterType {
50			get { return parameter_type; }
51			set { parameter_type = value; }
52		}
53
54		public MetadataToken MetadataToken {
55			get { return token; }
56			set { token = value; }
57		}
58
59		internal ParameterReference (string name, TypeReference parameterType)
60		{
61			if (parameterType == null)
62				throw new ArgumentNullException ("parameterType");
63
64			this.name = name ?? string.Empty;
65			this.parameter_type = parameterType;
66		}
67
68		public override string ToString ()
69		{
70			return name;
71		}
72
73		public abstract ParameterDefinition Resolve ();
74	}
75}